สตริง对象的扩展函数:
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 = ฟังก์ชั่น ($ delimiter, $ limit) {var $ ss = this.split ($ delimiter, $ limit); สำหรับ (var $ i = 0; $ i <$ ss.length; $ i ++) $ ss [$ i] = $ ss [$ i] .trim (); ส่งคืน $ ss; } string.prototype.htmlentities = function () {return this.replace (/&/g, '&'). แทนที่ (/</g, '<') แทนที่ (/>/g, '>'); } string.prototype.striptags = function () {return this.replace (/<([^>]+)>/g, ''); } string.prototype.toarray = function () {return this.split (''); } string.prototype.tointArray = function () {var returnArray = []; สำหรับ (var i = 0; i <this.length; i ++) {returnarray.push (this.charcodeat (i)); } return returnArray; } string.prototype.replaceall = function ($ old, $ snew) {return thinplace (ใหม่ regexp ($ old, "gm"), $ snew); -变量替换
var a = "ฉันรัก {0} และคุณรัก {1} อยู่ที่ไหน {0}!"; a.format ("คุณ", "ฉัน"); string.prototype.format = function () {var args = อาร์กิวเมนต์; ส่งคืนสิ่งนี้ replace (// {(/d+)/}/g, ฟังก์ชัน (m, i, o, n) {return args [i];}); -在字符串末尾追加字符串
string.prototype.append = function ($ str) {return this.concat ($ str); -删除指定索引位置的字符, 索引无效将不删除任何字符
string.prototype.deleteCharat = function ($ sindex) {ถ้า ($ sindex <0 || $ sindex> = this.length) {return this.valueof (); } อื่นถ้า ($ sindex == 0) {return this.substring (1, this.length); } อื่นถ้า ($ 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) {ถ้า ($ sindex == $ eIndex) {return this.deleteCharat ($ SINDEX); } else {ถ้า ($ sindex> $ eIndex) {var tindex = $ eIndex; $ EINDEX = $ SINDEX; $ sindex = tindex; } if ($ sindex <0) $ sindex = 0; if ($ eIndex> this.length-1) $ eIndex = this.length-1; ส่งคืนสิ่งนี้ 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) {ถ้า (this.length! = $ str.length) {return false; } else {var tmp1 = this.toLowerCase (); var tmp2 = $ str.tolowercase (); ส่งคืน tmp1 == tmp2; -将指定的字符串插入到指定的位置后面! 索引无效将直接追加到字符串的末尾
string.prototype.insert = function ($ ofSet, $ str) {ถ้า ($ OFSET <0 || $ OFSET> = this.length-1) {return this.concat ($ str); } return this.substring (0, $ ofset)+$ str+this.substring ($ ofset+1); -将指定的位置的字符设置为另外指定的字符或字符串. 索引无效将直接返回不做任何处理!
string.prototype.setcharat = function ($ toSet, $ str) {ถ้า ($ ofset <0 || $ ofSet> = this.length-1) {return this.valueof (); } return this.substring (0, $ ofset)+$ str+this.substring ($ ofset+1); } string.prototype.replacelen = ฟังก์ชั่น (เริ่มต้น, len, แทนที่) {ถ้า (! len) ส่งคืนสิ่งนี้; if (start> = this.length) ส่งคืนสิ่งนี้; var returnSeg = ''; var returnSeg2 = ''; var i = 0; สำหรับ (; i <this.length; i ++) {var c = this.charat (i); if (i <start) returnSeg += c; if (i> = start + len) returnSeg2 + = c; } returnSeg + แทนที่ + returnSeg2; -扩展基础类:
替换字符, 这个在替换填入比较有用, 比如 *** 天 *** 小时 <อินพุต /> 天 <อินพุต /> 小时
string.prototype.replacechar = ฟังก์ชั่น (เป้าหมาย, แทนที่, เริ่มต้น) {ถ้า (เป้าหมาย) ส่งคืนสิ่งนี้; ถ้า (เริ่มต้น) เริ่มต้น = 0; var returnVal = this.substring (0, start); ดัชนี var = 0; สำหรับ (var i = start; i <this.length; i ++) {var c = this.charat (i); target = typeof target == 'ฟังก์ชั่น'? target.call (สิ่งนี้, ดัชนี): target; if (c == เป้าหมาย) {returnVal += typeof แทนที่ == 'ฟังก์ชั่น'? แทนที่. call (สิ่งนี้, ดัชนี): แทนที่; ในขณะที่ (i <this.length - 1 && this.charat (i+1) == c) {i ++; } ดัชนี ++; } else {returnVal += c; }} returnval; -将该字符串反序排列
string.prototype.reverse = function () {var str = ""; สำหรับ (var i = this.length-1; i> = 0; i-) {str = str.concat (this.charat (i)); } return str; -计算长度, 每个汉字占两个长度, 英文字符每个占一个长度
string.prototype.uclength = function () {var len = 0; สำหรับ (var i = 0; i <this.length; i ++) {ถ้า (this.charcodeat (i)> 255) len+= 2; อื่น ๆ Len ++; } return len; -在字符串的左边填充一些特定的字符
string.prototype.lpad = ฟังก์ชั่น (len, s) {var a = อาร์เรย์ใหม่ (นี่); var n = (len - this.length); สำหรับ (var i = 0; i <n; i ++) {a.unshift (s); } return a.join (""); -在字符串的右边填充一些特定的字符
string.prototype.rpad = ฟังก์ชั่น (len, s) {var a = อาร์เรย์ใหม่ (นี่); var n = (len - this.length); สำหรับ (var i = 0; i <n; i ++) {a.push (s); } return a.join (""); -把字符串的首字母转化为大写
string.prototype.ucwords = function () {return this.substring (0,1) .touppercase (). concat (this.substring (1)); } string.prototype.contains = function ($ str) {return.indexof ($ str)> -1? จริง: เท็จ; -将格式为 2008-04-02 10:08:44 的字符串转成日期 (สตริง对象的值必须为: 2008-04-02 10:08:44)
string.prototype.todate = function () {var str = this.replace (/-/g, "/"); return (วันที่ใหม่ (str)); -将原来用字符串表示的十进数转成十进制浮点数: ความแม่นยำ为精度
string.prototype.tofloat = ฟังก์ชั่น (ความแม่นยำ) {precision = ความแม่นยำ || 2; ส่งคืน parsefloat (นี่, 10) .tofixed (ความแม่นยำ); -将原来用字符串表示的十进数转成十进制整数
string.prototype.toint = function () {return parseint (this, 10) .toString (); -将两个原来用字符串表示的十进数相加后当作字串返回: เพิ่ม为加数
string.prototype.add = function (addend) {var sum = parsefloat (นี่, 10) + parsefloat (เพิ่มเติม, 10); ส่งคืน sum+""; -十进制转其他进制代码如下 NextScale 为进制 2,8,16
string.prototype.shiftscale = ฟังก์ชั่น (nextscale) {return parsefloat (นี่) .toString (NextScale); -各进制互相转换:
สิ่งนี้对象必须是整数
@param prescale 原是是几进制数
@param nextscale 要转换成几进制数
string.prototype.scaleshift = function (prescale, nextscale) {return parseint (นี่, prescale) .toString (NextScale); -全角 2 半角 document.write ("abc,, 我们都是好朋友");
string.prototype.dbc2sbc = function () {
ส่งคืนสิ่งนี้ replace (/[/uff01-/uff5e]/g, ฟังก์ชั่น (a) {return string.fromcharcode (A.Charcodeat (0) -65248);}) แทนที่ (// u3000/g, "");
-
อาร์เรย์扩展函数:
var isnumeric = function (x) {// ส่งคืนจริงถ้า x เป็นตัวเลขและเท็จถ้าไม่ใช่ var regexp = /^(-)?(/d*)(/.?)(/d*)$/; return string (x) .match (regexp); } var myarray = [1, 'สอง', 3, 'สี่', 5, 'หก', 7, 'แปด', 9, 'สิบ']; var ookingarray = myArray.filter (isnumeric); // เอาท์พุท: 1,3,5,7,9 var ordarray = myarray.some (isnumeric); // outputs: true var ookingarray = myArray.every (isnumeric); // outputs: false var printarray = function (x, idx) {document.writeLn ('['+idx+'] ='+x); } myarray.foreach (printArray); // outputs: [0] = 1 [1] = สอง [2] = 3 [3] = สี่ [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") โยน typeerror ใหม่ (); var thisp = อาร์กิวเมนต์ [1]; สำหรับ (var i = 0; i <len; i ++) {ถ้า (ฉันอยู่ในนี้ &&! fun.call (thisp, นี่ [i], i, this)) กลับเท็จ; } return true; - } if (! array.prototype.filter) {array.prototype.filter = function (fun /*, thisp* /) {var len = this.length; if (typeof fun! = "function") โยน typeerror ใหม่ (); var res = new Array (); var thisp = อาร์กิวเมนต์ [1]; สำหรับ (var i = 0; i <len; i ++) {ถ้า (i ในนี้) {var val = this [i]; // ในกรณีที่สนุกกลายพันธุ์สิ่งนี้ถ้า (fun.call (thisp, val, i, this)) res.push (val); }} return res; - } if (! array.prototype.foreach) {array.prototype.foreach = ฟังก์ชั่น (fun /*, thisp* /) {var len = this.length; if (typeof fun! = "function") โยน typeerror ใหม่ (); var thisp = อาร์กิวเมนต์ [1]; สำหรับ (var i = 0; i <len; i ++) {ถ้า (ฉันอยู่ในนี้) fun.call (thisp, นี่ [i], i, this); - } if (! array.prototype.map) {array.prototype.map = function (fun /*, thisp* /) {var len = this.length; if (typeof fun! = "function") โยน typeerror ใหม่ (); var res = อาร์เรย์ใหม่ (len); var thisp = อาร์กิวเมนต์ [1]; สำหรับ (var i = 0; i <len; i ++) {ถ้า (ฉันอยู่ในนี้) res [i] = fun.call (thisp, นี่ [i], i, this); } return res; - } if (! array.prototype.some) {array.prototype.some = function (fun /*, thisp* /) {var len = this.length; if (typeof fun! = "function") โยน typeerror ใหม่ (); var thisp = อาร์กิวเมนต์ [1]; สำหรับ (var i = 0; i <len; i ++) {ถ้า (ฉันอยู่ใน && fun.call (thisp, นี่ [i], i, this)) กลับมาจริง; } return false; - } array.prototype.sortnum = function () {return this.sort (ฟังก์ชั่น (a, b) {return ab;}); } <!- 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); // ส่งคืน 9, 14, 17 var thirtyfive = tmp.find ('35 '); // ส่งคืน 18 var thirtyfive = tmp.find (35); // ส่งคืน 15 var haveBlue = tmp.find ('สีน้ำเงิน'); // ส่งคืน 8 var notfound = tmp.find ('ไม่อยู่ที่นั่น!'); // ส่งคืน talse var regexp1 = tmp.find (/^b/); // ส่งคืน 8,20 (ตัวอักษรตัวแรกเริ่มต้นด้วย b) var regexp1 = tmp.find (/^b/i); // ส่งคืน 8,19,20 (เช่นเดียวกับด้านบน แต่ไม่สนใจกรณี) -> array.prototype.find = ฟังก์ชั่น (searchStr) {var reworray = false; สำหรับ (i = 0; i <this.length; i ++) {ถ้า (typeof (searchstr) == 'function') {ถ้า (searchstr.test (นี่ [i])) {ถ้า (! returnArray) {returnArray = []} returnArray.push (i); }} else {if (this [i] === searchStr) {if (! returnArray) {returnArray = []} returnArray.push (i); }}} returnarray; -随机改变数组的排序
array.prototype.shuffle = function () {สำหรับ (var rnd, tmp, i = this.length; i; rnd = parseint (math.random ()*i), tmp = this [-i], [i] = this [rnd], [rnd] = tmp); คืนสิ่งนี้; } <!-var myarray = [1,2,3,4,5,6,7,7,8,9,10,11,12,13,14,15]; var yourarray = [1,2,3,4,5,6,7,8,8,9,10,11,12,13,14,15]; document.writeln (myarray.compare (yourarray)); // outputs: true;-> array.prototype.compare = function (testarr) {ถ้า (this.length! = testarr.length) ส่งคืนเท็จ; สำหรับ (var i = 0; i <testarr.length; i ++) {ถ้า (นี่ [i] .compare) {ถ้า (! นี่ [i]. compare (testarr [i])) กลับเท็จ; } ถ้า (นี่ [i]! == testarr [i]) ส่งคืนเท็จ; } return true; -去掉数组中重复的值 var a = อาร์เรย์ใหม่ ("5", "7", "7"); A.Unique ();
array.prototype.unique = function () {var data = this || - var a = {}; // 声明一个对象, JavaScript 的对象可以当哈希表用สำหรับ (var i = 0; i <data.length; i ++) {a [data [i]] = true; // 设置标记, 把数组的值当下标, 这样就可以去掉重复的值} data.length = 0; สำหรับ (var i ใน a) {// 遍历对象, 把已标记的还原成数组 [data.length] = i; } ส่งคืนข้อมูล; } array.prototype.addall = function ($ array) {ถ้า ($ array == null || $ array.length == 0) return; สำหรับ (var $ i = 0; $ i <$ array.length; $ i ++) this.push ($ array [$ i]); } array.prototype.contains = function ($ value) {สำหรับ (var $ i = 0; $ i <this.length; $ i ++) {var $ element = this [$ i]; if ($ element == $ value) ส่งคืนจริง; } return false; } array.prototype.indexof = function ($ value) {สำหรับ (var $ i = 0; $ i <this.length; $ i ++) {ถ้า (นี่ [$ i] == $ value) คืน $ i; } return -1; } if (! array.prototype.lastindexof) {array.prototype.lastindexof = ฟังก์ชั่น (elt /*, จาก* /) {var len = this.length; var จาก = number (อาร์กิวเมนต์ [1]); if (isnan (จาก)) {จาก = len - 1; } else {จาก = (จาก <0)? Math.Ceil (จาก): Math.Floor (จาก); ถ้า (จาก <0) จาก += len; อื่นถ้า (จาก> = len) จาก = len - 1; } สำหรับ (; จาก> -1; จาก-) {ถ้า (จากใน && this [จาก] === elt) กลับจาก; } return -1; - } array.prototype.insertat = function ($ value, $ index) {ถ้า ($ index <0) this.unshift ($ value); อื่นถ้า ($ index> = this.length) this.push ($ value); อย่างอื่น this.splice ($ index, 0, $ value); -根据数组的下标来删除元素
array.prototype.removebyIndex = ฟังก์ชั่น ($ n) {ถ้า ($ n <0) {// 如果 n <0, 则不进行任何操作。ส่งคืนสิ่งนี้; } else {return this.slice (0, $ n) .concat (this.slice ($ n+1, this.length)); -依赖ดัชนีของ
array.prototype.remove = function ($ value) {var $ index = this.indexof ($ value); if ($ index! = -1) this.splice ($ index, 1); } array.prototype.removeAll = function () {ในขณะที่ (this.length> 0) this.pop (); } array.prototype.replace = function ($ oldValue, $ newValue) {สำหรับ (var $ i = 0; $ i <this.length; $ i ++) {ถ้า (นี่ [$ i] == $ oldValue) {this [$ i] = $ newValue; กลับ; }}} array.prototype.swap = function ($ a, $ b) {if ($ a == $ b) คืน; var $ tmp = this [$ a]; สิ่งนี้ [$ a] = สิ่งนี้ [$ b]; สิ่งนี้ [$ b] = $ tmp; } array.prototype.max = function () {return math.max.apply ({}, สิ่งนี้); } array.prototype.min = function () {return math.min.apply ({}, สิ่งนี้); } array.prototype.splice = ฟังก์ชั่น (เริ่มต้น, เดลเลน, รายการ) {var len = this.length; start = start <0? 0: start> len? len: start? start: 0; DELLEN = DELLEN <0? 0: DELLEN> LEN? LEN: DELLEN? DELLEN: LEN; var arr = [], res = []; var iarr = 0, ires = 0, i = 0; สำหรับ (i = 0; i <len; i ++) {ถ้า (i <start || ires> = dellen) arr [iarr ++] = this [i]; อื่น {res [ires ++] = this [i]; if (item && ires == dellen) {arr [iarr ++] = item; }}} if (item && ires <dellen) arr [iarr] = item; สำหรับ (var i = 0; i <arr.length; i ++) {this [i] = arr [i]; } this.length = arr.length; Ret Res; } array.prototype.shift = function () {if (! this) return []; return this.splice (0,1) [0];}分开添加, 关键字ตื้นสำเนา, 如果遇到数组, 复制数组中的元素
array.prototype.concat = function () {var i = 0; ในขณะที่ (i <arguments.length) {if (typeof อาร์กิวเมนต์ [i] === 'object' && typeof อาร์กิวเมนต์ [i] .splice === 'ฟังก์ชั่น' &&! อาร์กิวเมนต์ [i] .propertyisenumerable ('ความยาว') {// var j = 0; ในขณะที่ (j <อาร์กิวเมนต์ [i] .length) this.splice (this.length, 0, อาร์กิวเมนต์ [i] [j ++]); i ++; } else {this [this.length] = อาร์กิวเมนต์ [i ++]; }} ส่งคืนสิ่งนี้; } array.prototype.join = ฟังก์ชั่น (ตัวคั่น) {var i = 0, str = ""; ในขณะที่ (i <this.length) str+= สิ่งนี้ [i ++]+ตัวคั่น; return str; } array.prototype.pop = function () {return this.splice (this.length-1,1) [0];} array.prototype.push = function () {array.prototype.splice.apply (this.length, 0] // 这里没有直接处理参数, 而是复制了一下ส่งคืนสิ่งนี้ความยาว; } array.prototype.reverse = function () {สำหรับ (var i = 0; i <this.length/2; i ++) {var temp = this [i]; [i] = สิ่งนี้ [this.length-1-i]; สิ่งนี้ [this.length-1-i] = temp; } ส่งคืนสิ่งนี้; } array.prototype.slice = function (เริ่มต้นสิ้นสุด) {var len = this.length; start = start <0? start+= len: start? start: 0; end = end <0? end+= len: end> len? len: end? end: len; var i = เริ่ม; var res = []; ในขณะที่ (i <end) {res.push (นี่ [i ++]); } return res; } //arr.unshift(ele1,ele2,ele3 .... ) array.prototype.unshift = function () {array.prototype.splice.apply (สิ่งนี้ [0,0] .concat (array.prototype.slice.apply -