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

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,"https://www.jb51.net/"); 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 < len; i++) { if (i in this && !fun.call(thisp, this[i], i, this)) return false; } return true; }; } if (!Array.prototype.filter) { Array.prototype.filter = function(fun /*, thisp*/) { var len = this.length; if (typeof fun != "function") throw new TypeError(); var res = new Array(); var thisp = arguments[1]; for (var i = 0; i < len; i++) { if (i in this) { var val = this[i]; // in case fun mutates this if (fun.call(thisp, val, i, this)) res.push(val); } } return res; }; } if (!Array.prototype.forEach) { Array.prototype.forEach = function(fun /*, thisp*/) { var len = this.length; if (typeof fun != "function") throw new TypeError(); var thisp = arguments[1]; for (var i = 0; i < len; i++) { if (i in this) fun.call(thisp, this[i], i, this); } }; } if (!Array.prototype.map) { Array.prototype.map = function(fun /*, thisp*/) { var len = this.length; if (typeof fun != "function") throw new TypeError(); var res = new Array(len); var thisp = arguments[1]; for (var i = 0; i < len; i++) { if (i in this) res[i] = fun.call(thisp, this[i], i, this); } return res; }; } if (!Array.prototype.some) { Array.prototype.some = function(fun /*, thisp*/) { var len = this.length; if (typeof fun != "function") throw new TypeError(); var thisp = arguments[1]; for (var i = 0; i < len; i++) { if (i in this && fun.call(thisp, this[i], i, this)) return true; } return false; }; } Array.prototype.sortNum = function() { return this.sort( function (a,b) { return a-b; } ); } <!-- var tmp = [5,9,12,18,56,1,10,42,'blue',30, 7,97,53,33,30,35,27,30,'35','Ball', 'bubble']; var thirty=tmp.find(30); // Returns 9, 14, 17 var thirtyfive=tmp.find('35'); // Returns 18 var thirtyfive=tmp.find(35); // Returns 15 var haveBlue=tmp.find('blue'); // Returns 8 var notFound=tmp.find('not there!'); // Returns false var regexp1=tmp.find(/^b/); // returns 8,20 (first letter starts with b) var regexp1=tmp.find(/^b/i); // returns 8,19,20 (same as above but ignore case) --> Array.prototype.find = function(searchStr) { var returnArray = false; for (i=0; i<this.length; i++) { if (typeof(searchStr) == 'function') { if (searchStr.test(this[i])) { if (!returnArray) { returnArray = [] } returnArray.push(i); } } else { if (this[i]===searchStr) { if (!returnArray) { returnArray = [] } returnArray.push(i); } } } return returnArray; }

随机改变数组的排序 

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

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