JavaScript常用字符串与数组扩展函数小结

String对象的扩展函数

String.prototype.trim = function() { return this.replace(/^\s+|\s+$/g,""); } String.prototype.ltrim = function() { return this.replace(/^\s+/g,""); } String.prototype.rtrim = function() { return this.replace(/\s+$/g,""); } String.prototype.splitAndTrim = function($delimiter, $limit) { var $ss = this.split($delimiter, $limit); for(var $i=0; $i<$ss.length; $i++) $ss[$i] = $ss[$i].trim(); return $ss; } String.prototype.htmlEntities = function () { return this.replace(/&/g,'&amp;').replace(/</g,'&lt;').replace(/>/g,'&gt;'); } String.prototype.stripTags = function () { return this.replace(/<([^>]+)>/g,''); } String.prototype.toArray = function() { return this.split(''); } String.prototype.toIntArray = function() { var returnArray = []; for (var i=0; i<this.length; i++) { returnArray.push(this.charCodeAt(i)); } return returnArray; } String.prototype.replaceAll = function($old, $snew){ return this.replace(new RegExp($old,"gm"),$snew); }

变量替换

var a = "I Love {0}, and You Love {1},Where are {0}!";a.format("You","Me"); String.prototype.format = function(){ var args = arguments; return this.replace(/\{(\d+)\}/g,function(m,i,o,n){ return args[i]; }); }

在字符串末尾追加字符串 

String.prototype.append = function($str){ return this.concat($str); }

删除指定索引位置的字符,索引无效将不删除任何字符 

String.prototype.deleteCharAt = function($sIndex){ if($sIndex<0 || $sIndex>=this.length){ return this.valueOf(); }else if($sIndex==0){ return this.substring(1,this.length); }else if($sIndex==this.length-1){ return this.substring(0,this.length-1); }else{ return this.substring(0,$sIndex)+this.substring($sIndex+1); } }

删除指定索引间的字符串.$sIndex和$eIndex所在的字符不被删除!依赖deleteCharAt  

String.prototype.deleteString = function($sIndex, $eIndex){ if($sIndex==$eIndex){ return this.deleteCharAt($sIndex); }else{ if($sIndex>$eIndex){ var tIndex=$eIndex; $eIndex=$sIndex; $sIndex=tIndex; } if($sIndex<0)$sIndex=0; if($eIndex>this.length-1)$eIndex=this.length-1; return this.substring(0,$sIndex+1)+this.substring($eIndex,this.length); } }

检查字符串是否以某个字符串(str)结尾 

String.prototype.endsWith = function($str){ return this.substr(this.length - $str.length) == $str; }

检查该字符串是否以某个字符串开始 

String.prototype.startsWith = function(str){ return this.substr(0, str.length) == str; }

比较两个字符串是否相等,不区分大小写! 

String.prototype.equalsIgnoreCase = function($str){ if(this.length!=$str.length){ return false; }else{ var tmp1=this.toLowerCase(); var tmp2=$str.toLowerCase(); return tmp1==tmp2; } }

将指定的字符串插入到指定的位置后面!索引无效将直接追加到字符串的末尾 

String.prototype.insert = function($ofset, $str){ if($ofset<0 || $ofset>=this.length-1){ return this.concat($str); } return this.substring(0,$ofset)+$str+this.substring($ofset+1); }

将指定的位置的字符设置为另外指定的字符或字符串.索引无效将直接返回不做任何处理!  

String.prototype.setCharAt = function($ofset, $str){ if($ofset<0 || $ofset>=this.length-1){ return this.valueOf(); } return this.substring(0,$ofset)+$str+this.substring($ofset+1); } String.prototype.replaceLen = function(start, len, replaced) { if(!len) return this; if(start >= this.length) return this; var returnSeg = ''; var returnSeg2 = ''; var i = 0; for (; i < this.length; i++){ var c = this.charAt(i); if(i < start) returnSeg += c; if(i >= start + len) returnSeg2 += c; } return returnSeg + replaced + returnSeg2; }

扩展基础类: 
替换字符,这个在替换填入比较有用,比如***天***小时 替换为 <input />天<input />小时  
 

String.prototype.replaceChar = function(target, replaced, start) { if(!target) return this; if(!start) start = 0; var returnVal = this.substring(0, start); var index = 0; for (var i = start; i < this.length; i++) { var c = this.charAt(i); target = typeof target == 'function' ? target.call(this, index) : target; if (c == target) { returnVal += typeof replaced == 'function' ? replaced.call(this, index) : replaced; while (i < this.length - 1 && this.charAt(i + 1) == c) { i++; } index++; }else{ returnVal += c; } } return returnVal; }

将该字符串反序排列 

String.prototype.reverse = function(){ var str=""; for(var i=this.length-1;i>=0;i--){ str=str.concat(this.charAt(i)); } return str; }

计算长度,每个汉字占两个长度,英文字符每个占一个长度 

String.prototype.ucLength = function(){ var len = 0; for(var i=0;i<this.length;i++){ if(this.charCodeAt(i)>255)len+=2; else len++; } return len; }

在字符串的左边填充一些特定的字符 

String.prototype.lpad = function(len, s) { var a = new Array(this); var n = (len - this.length); for ( var i = 0; i < n; i++) { a.unshift(s); } return a.join(""); }

在字符串的右边填充一些特定的字符 

String.prototype.rpad = function(len, s) { var a = new Array(this); var n = (len - this.length); for ( var i = 0; i < n; i++) { a.push(s); } return a.join(""); }

把字符串的首字母转化为大写 

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wgyydw.html