//js字符串长度计算
String.prototype.realLength = function() {
return this.replace(/[^\x00-\xff]/g, "**").length; // [^\x00-\xff] - 匹配非双字节的字符
};
//按长度截取字符串,在转载的基础上做了细微调整,原文请访问:
//http://www.cnblogs.com/cssfirefly/p/3768437.html
String.prototype.realSubstring = function(n){
var str = this||'';
if(this.realLength()<=n){return this;}
var m=Math.floor(n/2);
for(var i=m;i<this.length;i++){
if(this.substring(0,i).realLength()>=n){
return this.substring(0,i);
}
}
return this;
}
调用
"这是一个abcd测试".realLength(); //16
"这是一个abcd测试".realSubstring(8); //"这是一个"
"这是一个abcd测试".realSubstring(9); //"这是一个a"
"这是一个abcd测试".realSubstring(7); //"这是一个"