JS 获取中英字符串字节长度

时间:2024-04-29 09:32:29

正则匹配中文字:

这里限定中文字的范围,一般的使用是没什么问题的。如果要求十分严格的话,那么就只能使用更加严谨的代码匹配了

1:/([^\u0000-\u00FF])/g

2:/[^\x00-\xff]/ig

下面是网上查到的两种写法:

http://www.uw3c.com/jsviews/js62.html

方法一
function getBt(str){
var char = str.match(/[^\x00-\xff]/ig);
return str.length + (char == null ? 0 : char.length);
} 这种方法的原理是把是中文的字符都放进一个变量char,如果没有中文char会为null,如果有值再把char的length加上一回,这样一来就等于中文的字符的length加了两回。
解决办法2:
function getBt(str){
var char = str.replace(/[^\x00-\xff]/g, '**');
return char.length;
}
alert(getBt("UW3C技术分享"));
这种方法的原理更简单,把是中文的替换成“**”之后在算长度,就能得到字节数。