JavaScript常用字符串与数组扩展函数小结_基础知识
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/g,'>'); } 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
变量替换
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=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($sIndexthis.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=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=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 = start + len) returnSeg2 += c; } return returnSeg + replaced + returnSeg2; }
扩展基础类:
替换字符,这个在替换填入比较有用,比如***天***小时 替换为 天小时
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
将该字符串反序排列
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;i255)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
在字符串的右边填充一些特定的字符
String.prototype.rpad = function(len, s) { var a = new Array(this); var n = (len - this.length); for ( var i = 0; i
把字符串的首字母转化为大写
String.prototype.ucwords = function() { return this.substring(0,1).toUpperCase().concat(this.substring(1)); } String.prototype.contains = function($str) { return this.indexOf($str) > -1 ? true : false; }
将格式为2008-04-02 10:08:44的字符串转成日期(String对象的值必须为: 2008-04-02 10:08:44)
String.prototype.toDate = function(){ var str = this.replace(/-/g,"/"); return (new Date(str)); }
将原来用字符串表示的十进数转成十进制浮点数: precision为精度
String.prototype.toFloat = function(precision){ precision = precision || 2; return parseFloat(this,10).toFixed(precision); }
将原来用字符串表示的十进数转成十进制整数
String.prototype.toInt = function(){ return parseInt(this,10).toString(); }
将两个原来用字符串表示的十进数相加后当作字串返回 : addend为加数
String.prototype.add = function(addend){ var sum = parseFloat(this,10) + parseFloat(addend,10); return sum+""; }
十进制转其他进制代码如下nextScale为进制 如2,8,16
String.prototype.shiftScale = function(nextScale){ return parseFloat(this).toString(nextScale); }
各进制互相转换 :
this对象必须是整数
@param preScale 原是是几进制数
@param nextScale 要转换成几进制数
String.prototype.scaleShift = function(preScale,nextScale){ return parseInt(this,preScale).toString(nextScale); }
全角2半角 document.write("ABC 123,我们都是好朋友");
String.prototype.dbc2sbc = function (){
return this.replace(/[\uff01-\uff5e]/g,function(a){return String.fromCharCode(a.charCodeAt(0)-65248);}).replace(/\u3000/g," ");
}
Array扩展函数:
var isNumeric = function(x) { // returns true if x is numeric and false if it is not. var RegExp = /^(-)?(\d*)(\.?)(\d*)$/; return String(x).match(RegExp); } var myArray = [1,'two',3,'four',5,'six',7,'eight',9,'ten']; var oddArray=myArray.filter(isNumeric); // outputs: 1,3,5,7,9 var oddArray=myArray.some(isNumeric); // outputs: true var oddArray=myArray.every(isNumeric); // outputs: false var printArray =function(x, idx){ document.writeln('['+idx+'] = '+x); } myArray.forEach(printArray);// outputs: [0] = 1 [1] = two [2] = 3 [3] = four [4] = 5 myArray.remove(9); document.writeln(myArray); if (!Array.prototype.every) { Array.prototype.every = function(fun /*, thisp*/) { var len = this.length; if (typeof fun != "function") throw new TypeError(); var thisp = arguments[1]; for (var i = 0; i Array.prototype.find = function(searchStr) { var returnArray = false; for (i=0; i
随机改变数组的排序
Array.prototype.shuffle = function (){ for(var rnd, tmp, i=this.length; i; rnd=parseInt(Math.random()*i), tmp=this[--i], this[i]=this[rnd], this[rnd]=tmp); return this; } Array.prototype.compare = function(testArr) { if (this.length != testArr.length) return false; for (var i = 0; i
去掉数组中重复的值var a = new Array("5","7","7"); a.unique();
Array.prototype.unique = function() { var data = this || []; var a = {}; //声明一个对象,javascript的对象可以当哈希表用 for (var i = 0; i = len) from = len - 1; } for (; from > -1; from--) { if (from in this && this[from] === elt) return from; } return -1; }; } Array.prototype.insertAt = function($value, $index) { if($index = this.length) this.push($value); else this.splice($index, 0, $value); }
根据数组的下标来删除元素
Array.prototype.removeByIndex=function($n) { if($n
依赖indexOf
Array.prototype.remove = function($value) { var $index = this.indexOf($value); if($index != -1) this.splice($index, 1); } Array.prototype.removeAll = function() { while(this.length > 0) this.pop(); } Array.prototype.replace = function($oldValue, $newValue) { for(var $i=0; $ilen?len:start?start:0; delLen=delLenlen?len:delLen?delLen:len; var arr =[],res=[]; var iarr=0,ires=0,i=0; for(i=0;i =delLen) arr[iarr++]=this[i]; else { res[ires++]=this[i]; if(item&&ires==delLen){ arr[iarr++]=item; } } } if(item&&ires
分开添加,关键字shallow copy,如果遇到数组,复制数组中的元素
Array.prototype.concat = function(){ var i=0; while(ilen?len:end?end:len; var i=start; var res = []; while(i
推荐阅读
-
PHP字符串与数组处理函数用法小结
-
JavaScript常用字符串与数组扩展函数小结
-
php filter函数库 (与变量跟类型有关的扩展),可以过滤常用邮件,IP,变量数组等
-
php filter函数库 (与变量跟类型有关的扩展),可以过滤常用邮件,IP,变量数组等
-
php filter函数库 (与变量跟类型有关的扩展),可以过滤常用邮件,IP,变量数组等
-
javascript中数组的多种定义方法和常用函数简介_基础知识
-
javascript中数组的多种定义方法和常用函数简介_基础知识
-
javascript的数组和常用函数详解_基础知识
-
对JavaScript ES6的常用总结之数组、函数、对象的扩展
-
JavaScript 字符串与数组转换函数[不用split与join]_javascript技巧