在javascript中如何得到中英文混合字符串的长度
更新时间:2014年01月17日 15:35:29 作者:
本文为大家介绍下Javascript中如何得到中英文混合字符串的长度,下面有个不错的教程,感兴趣的朋友可以参考下
有同事在公司的OA上发了个贴子,介绍在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,常常在提交到数据库中造成长度超标的错误,现在用这个方法,可以在提交前先检测一番了。
注:以上代码有些符号有问题,经修正后,改为如下函数。
复制代码 代码如下:
function get_strlength (str)
{
var len = 0;
if (str.match(/[^ -~]/g) == null)
{
len = str.length;
}
else
{
len = str.length + str.match(/[^ -~]/g).length;
}
return len;
}
您可能感兴趣的文章:
- js截取中英文字符串、标点符号无乱码示例解读
- javascript截取字符串(通过substring实现并支持中英文混合)
- JS判断字符串长度的5个方法(区分中文和英文)
- Javascript 字符串字节长度计算函数代码与效率分析(for VS 正则)
- js计算字符串长度包含的中文是utf8格式
- js如何判断输入字符串长度
- JS获取字符串型数组下标的数组长度的代码
- js限制textarea每行输入字符串长度的代码
- js 判断计算字符串长度/判断空的简单方法
- JavaScript实现的GBK、UTF8字符串实际长度计算函数
- JS判断输入字符串长度实例代码(汉字算两个字符,字母数字算一个)
- JavaScript获取中英文混合字符串长度的方法示例
最新评论