String.prototype.fillHash=function(oSource,sSymbol){ if(typeof sSymbol=="undefined"){sSymbol="$"} if(sSymbol.trim()!=""){sSymbol="//"+sSymbol} var r=new RegExp("//{"+sSymbol+"([^//://s//{//}]+)(?://:([^//{//{]+))?//}","g") var bIsFunc=typeof oSource=="function" var f=function(m0,sId,sFormat){ if(bIsFunc){ var oVal=oSource(sId.trim()) }else{ var oVal=oSource[sId.trim()] } if(oVal===null)return "" if(sFormat){ sFormat=sFormat.replace(/(^/s+)|(/s+$)/g,"") var oConstructor=eval((typeof oVal).replace(/^./,function(chr){return chr.toUpperCase()})) oVal=new oConstructor(oVal) if(typeof oVal.format=="function"){ return oVal.format(sFormat) } }else{ return oVal; } } return this.replace(r,f); } String.prototype.fill=function(){ var args=arguments return this.fillHash(args); } String.prototype.pchLeft=function(sPch){ var nLen=this.length>sPch.length?sPch.length:this.length; var r=new RegExp("^.{"+nLen+"}"); return sPch.replace(r,this.substring(0,nLen)); } String.prototype.pchRight=function(sPch){ var nLen=this.length>sPch.length?sPch.length:this.length; var r=new RegExp(".{"+nLen+"}$"); return sPch.replace(r,this.substring(this.length-nLen,this.length)); } String.prototype.subRight=function(nStart,nEnd){ //nStart,nEnd都为倒数,nEnd可不传/可负 var a=this.length-nStart; var b=this.length-nEnd; return this.substring(a,b); } String.prototype.trim=function(){ return this.lTrim().rTrim(); } String.prototype.lTrim=function(){ return this.replace(/(^[/s/n/r/uFEFF]+)/,""); } String.prototype.rTrim=function(){ return this.replace(/([/s/n/r]+$)/,""); } String.prototype.htmlEncode=function(){ return this.replace(/&/g,'&').replace(//"/g,'"').replace(/</g,'<').replace(/>/g,'>'); } String.prototype.htmlDncode=function(){ return this.replace(/&/g,'&').replace(/"/g,'/"').replace(/</g,'<').replace(/>/g,'>'); } String.prototype.ucfirst=function(){ return this.replace(/(/w)(/w*)/,function(a,b,c){return b.toUpperCase()+c}) } String.prototype.ucWord=function(){ return this.replace(/(/w)(/w*)/g,function(a,b,c){return b.toUpperCase()+c}) }