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

正则匹配中文字:

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

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技术分享")); 这种方法的原理更简单,把是中文的替换成“**”之后在算长度,就能得到字节数。