首页 > web前端 > js教程 > 正文

在javascript中如何得到中英文混合字符串的长度_javascript技巧

php中文网
发布: 2016-05-16 17:03:23
原创
1611人浏览过

有同事在公司的OA上发了个贴子,介绍在javascript中如何得到中英文混合字符串的长度。

用的是正则表达式。

Writer
Writer

企业级AI内容创作工具

Writer 176
查看详情 Writer
复制代码 代码如下:

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;
}
java速学教程(入门到精通)
java速学教程(入门到精通)

java怎么学习?java怎么入门?java在哪学?java怎么学才快?不用担心,这里为大家提供了java速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号