JS的字符串都是string对象,可以用string对象的length属性可以获取其长度,但是无论是中文、全角符号以及英文最小长度单位都是1,这与php的strlen()并不相同。
如何让JS统计的字符串长度与php一致呢?这里的函数代码只是针对GBK下编码的字符,一个汉字等于二个字符。代码如下:
抓取出每个字符,匹配全角字符和汉字的,则计2个字符,其他的则计1个字符。
如何让JS统计的字符串长度与php一致呢?这里的函数代码只是针对GBK下编码的字符,一个汉字等于二个字符。代码如下:
function strlen(str) { //在IE8 兼容性模式下 不会报错
var s = 0;
for(var i = 0; i < str.length; i++) {
if(str.charAt(i).match(/[\u0391-\uFFE5]/)) {
s += 2;
} else {
s++;
}
}
return s;
}
抓取出每个字符,匹配全角字符和汉字的,则计2个字符,其他的则计1个字符。