string .length 汉字为两个字符处理 .Tlength
<script> /* This following code are designed and writen by Windy_sk <[email protected]> You can use it freely, but u must held all the copyright items! */
//测字符串实际长度 String.prototype.Tlength = function(){var arr=this.match(/[^\x00-\xff]/ig);return this.length+(arr==null?0:arr.length);}
//字符串左取 String.prototype.left = function(num,mode){if(!/\d+/.test(num))return(this);var str = this.substr(0,num);if(!mode) return str;var n = str.Tlength() - str.length;num = num - parseInt(n/2);return this.substr(0,num);}
//字符串右取 String.prototype.right = function(num,mode){if(!/\d+/.test(num))return(this);var str = this.substr(this.length-num);if(!mode) return str;var n = str.Tlength() - str.length;num = num - parseInt(n/2);return this.substr(this.length-num);}
//字符串包含 String.prototype.GetCount = function(str,mode){return eval("this.match(/("+str+")/g"+(mode?"i":"")+").length");}
//字符串去除两端空字符 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, "");}
document.write("'aa啦啦aa'.Tlength() = " + "aa啦啦aa".Tlength()); document.write("<br>"); document.write("'aabbcc'.Tlength() = " + "aabbcc".Tlength()); document.write("<br>"); document.write("'aa啦啦aa'.left(4) = " + "aa啦啦aa".left(4)); document.write("<br>"); document.write("'aa啦啦aa'.left(4,true) = " + "aa啦啦aa".left(4,true)); document.write("<br>"); document.write("'aa啦啦aa'.right(4) = " + "aa啦啦aa".right(4)); document.write("<br>"); document.write("'aa啦啦aa'.right(4,true) = " + "aa啦啦aa".right(4,true)); document.write("<br>"); document.write("'abAcae'.GetCount('a') = " + "abAcae".GetCount("a")); document.write("<br>"); document.write("'abAcae'.GetCount('a',true) = " + "abAcae".GetCount("a",true)); document.write("<br>"); document.write("' abc de '.Ltrim() = " + " abc de ".Ltrim()); document.write("<br>"); document.write("' abc de '.Rtrim() = " + " abc de ".Rtrim()); document.write("<br>"); document.write("' abc de '.Trim() = " + " abc de ".Trim()); </script>
再来几个函数,getCookie(),getQuery(),DateDiff(),DateAdd(),b2s(),原+改
function getCookie(mainKey,subKey) { var reg = new RegExp("(^| )"+mainKey+"=([^;]*)(;|$)"); var arr = document.cookie.match(reg); if (arguments.length == 2) { if (arr!=null) return key(subKey,arr[2]); else return null; } else if (arguments.length == 1) { if (arr!=null) return unescape(arr[2]); else return null; }
function key(subKey,findWith) { var arr,reg = new RegExp("(^| |&)"+subKey+"=([^&]*)(&|$)"); var findWith = findWith?findWith:document.cookie; if (arr = findWith.match(reg)) return unescape(arr[2]); else return null; } }
function getQuery(name) { var reg = new RegExp("(^|&)"+name+"=([^&]*)(&|$)"); var r = location.search.substr(1).match(reg) if (r!=null) return unescape(r[2]); }
function DateAdd(strInterval, NumDay, dtDate) { var dtTmp = new Date(dtDate); if (isNaN(dtTmp)) dtTmp = new Date(); switch (strInterval) { case "s":return new Date(Date.parse(dtTmp) + (1000 * NumDay)); case "n":return new Date(Date.parse(dtTmp) + (60000 * NumDay)); case "h":return new Date(Date.parse(dtTmp) + (3600000 * NumDay)); case "d":return new Date(Date.parse(dtTmp) + (86400000 * NumDay)); case "w":return new Date(Date.parse(dtTmp) + ((86400000 * 7) * NumDay)); case "m":return new Date(dtTmp.getFullYear(), (dtTmp.getMonth()) + NumDay, dtTmp.getDate(), dtTmp.getHours(), dtTmp.getMinutes(), dtTmp.getSeconds()); case "y":return new Date((dtTmp.getFullYear() + NumDay), dtTmp.getMonth(), dtTmp.getDate(), dtTmp.getHours(), dtTmp.getMinutes(), dtTmp.getSeconds()); } } // DateDiff("m","2002/12/1 00:00:00","2004/12/1 00:00:00") function DateDiff(strInterval, dtStart, dtEnd) { var dtStart = new Date(dtStart); if (isNaN(dtStart)) dtStart = new Date(); var dtEnd = new Date(dtEnd); if (isNaN(dtEnd)) dtEnd = new Date(); switch (strInterval) { case "s":return parseInt((dtEnd - dtStart) / 1000); case "n":return parseInt((dtEnd - dtStart) / 60000); case "h":return parseInt((dtEnd - dtStart) / 3600000); case "d":return parseInt((dtEnd - dtStart) / 86400000); case "w":return parseInt((dtEnd - dtStart) / (86400000 * 7)); case "m":return (dtEnd.getMonth()+1)+((dtEnd.getFullYear()-dtStart.getFullYear())*12) - (dtStart.getMonth()+1); case "y":return dtEnd.getFullYear() - dtStart.getFullYear(); } } // b2s("11新浪网!@#程序员_+}{:><") function b2s(strng) { var Matches = strng.match(/[\x21-\x7e]/g); for (var i=0;i<Matches.length;i++) { strng = strng.replace(Matches[i],String.fromCharCode(Matches[i].charCodeAt (0)+65248)) } return strng; }
来几个,IE5下原型扩展
/*Number Object*/ if(!Number.prototype.toFixed) { Number.prototype.toFixed = function(n) { with(Math) return round(Number(this)*pow(10,n))/pow(10,n) } } /*Array Object*/ if (!Array.prototype.pop) { Array.prototype.pop = function() { var lastElement = this[this.length-1]; this.length = Math.max(this.length-1,0); return lastElement; } } if (!Array.prototype.push) { Array.prototype.push = function() { for(var i=0;i<arguments.length;i++) { this[this.length]=arguments[i]; } return this.length; } } if (!Array.prototype.shift) { Array.prototype.shift = function() { var firstElement = this[0]; this.reverse(); this.pop(); this.reverse(); return firstElement; } } if (!Array.prototype.splice) { Array.prototype.splice = function() { var start = arguments[0]; var deleteCount = start+arguments[1]; var deleteItem = this.slice(start,deleteCount); var beforeItem = this.slice(0,start); var afterItem = this.slice(deleteCount); this.length=beforeItem.length; var i; for (i=2;i<arguments.length;this[this.length]=arguments[i++]); for (i=0;i<afterItem.length;this[this.length]=afterItem[i++]); return deleteItem; } } if (!Array.prototype.unshift) { Array.prototype.unshift = function() { var arr = new Array(); for (var i=0;i<arguments.length;arr[i]=arguments[i++]); arr = arr.concat(this); this.length = 0; for (i=0;i<arr.length;this[i]=arr[i++]); } }
collection By airzen 2004/12/17

|