Javascript取得中英文混合字符串的长度的方法

发布时间:2020-12-31编辑:脚本学堂
本文介绍下如何用javascript脚本获取中英文混合的字符串的长度,有需要的朋友,可以参考下。

先来看一个用正则表达式得到中英文混合的字符串的代码:
 

复制代码 代码示例:
var str = ”坦克是tank的音译”;
var len = str.match(/[^ -~]/g) == null ? str.length : str.length + str.match(/[^ -~]/g).length ;

理解:
西文常用字符集由空格“ ”(0x20)到“~”(0x7e)构成,汉字会落在这个字符集外,而正则表达式[^ -~]表示除空格到“~”外的字符集。
string.match(regex) 会以数组形式返回字符串string中匹配正则表达式regex的子串,所以,
str.match(/[^ -~]/g)会以数组的形式返回一个个汉字。
例如:
 

复制代码 代码示例:
var str = "dd大哥";
//显示"大,哥",数组中返回两个汉字,数组长度为2

字符串常用操作:字符串反转字符串替换,如何实现字符串去除重复 ,各种字符串查找方法,字符串比较字符串转换方法,字符串截取字符串分割 ,以及如何求字符串长度 等。

alert(str.match(/[^ -~]/g));

这样,

复制代码 代码示例:
var len = str.match(/[^ -~]/g) == null ? str.length : str.length + str.match(/[^ -~]/g).length ;


就可以得到str的正确长度了。
javascript中,一个汉字的长度也被计算为1,常常在提交到数据库中造成长度超标的错误,有了这个方法,在提交前就可以先检测下了。