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下原型扩展
本文地址:http://com.8s8s.com/it/it12461.htm