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


Posted in Javascript onJanuary 17, 2014

有同事在公司的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; 
}
Javascript 相关文章推荐
Jquery获取复选框被选中值的简单方法
Jul 04 Javascript
详解node.js平台下Express的session与cookie模块包的配置
Apr 26 Javascript
JavaScript之事件委托实例(附原生js和jQuery代码)
Jul 22 jQuery
AngualrJs清除定时器遇到的坑
Oct 13 Javascript
js实现以最简单的方式将数组元素添加到对象中的方法
Dec 20 Javascript
JS获取月的第几周和年的第几周实例代码
Dec 05 Javascript
JavaScript常见事件处理程序实例总结
Jan 05 Javascript
JS实现点击按钮随机生成可拖动的不同颜色块示例
Jan 30 Javascript
bootstrap-table实现表头固定以及列固定的方法示例
Mar 07 Javascript
微信小程序生成二维码的示例代码
Mar 29 Javascript
vue.js实现二级菜单效果
Oct 19 Javascript
vue使用echarts实现水平柱形图实例
Sep 09 Javascript
JS阻止冒泡事件以及默认事件发生的简单方法
Jan 17 #Javascript
Js判断CSS文件加载完毕的具体实现
Jan 17 #Javascript
js使用eval解析json(js中使用json)
Jan 17 #Javascript
js window.open弹出新的网页窗口
Jan 16 #Javascript
jQuery$命名冲突怎么办如何解决
Jan 16 #Javascript
jQuery获得内容和属性示例代码
Jan 16 #Javascript
jQuery 追加元素的方法如append、prepend、before
Jan 16 #Javascript
You might like
怎样辨别一杯好咖啡
2021/03/03 新手入门
PHP 模拟登陆MSN并获得用户信息
2009/05/16 PHP
兼容各大浏览器带关闭按钮的漂浮多组图片广告代码
2014/06/05 PHP
使用PHP similar text计算两个字符串相似度
2015/11/06 PHP
WordPress开发中短代码的实现及相关函数使用技巧
2016/01/05 PHP
PHP之将POST数据转化为字符串的实现代码
2016/11/03 PHP
PHP构造二叉树算法示例
2017/06/21 PHP
PHP连接SQL Server的方法分析【基于thinkPHP5.1框架】
2019/05/06 PHP
JavaScript 图像动画的小demo
2012/05/23 Javascript
js新闻滚动 js如何实现新闻滚动效果
2013/01/07 Javascript
JAVASCRIPT函数作用域和提前声明 分享
2013/08/22 Javascript
js的Boolean对象初始值示例
2014/03/04 Javascript
javascript定义变量时带var与不带var的区别分析
2015/01/12 Javascript
JavaScript通过元素索引号删除数组中对应元素的方法
2015/03/18 Javascript
JS数字千分位格式化实现方法总结
2016/12/16 Javascript
jQuery Easyui datagrid行内实现【添加】、【编辑】、【上移】、【下移】
2016/12/19 Javascript
Angular实现购物车计算示例代码
2017/02/21 Javascript
微信小程序 共用变量值的实现
2017/07/12 Javascript
vue全局使用axios的操作
2020/09/08 Javascript
[02:54]DOTA2亚洲邀请赛 VG战队出场宣传片
2015/02/07 DOTA
跟老齐学Python之dict()的操作方法
2014/09/24 Python
在自动化中用python实现键盘操作的方法详解
2019/07/19 Python
Python3操作YAML文件格式方法解析
2020/04/10 Python
python3 使用ssh隧道连接mysql的操作
2020/12/05 Python
Marks & Spencer爱尔兰:英国马莎百货
2016/04/20 全球购物
美国在线工具商店:Acme Tools
2018/06/26 全球购物
Tiqets英国:智能手机上的文化和娱乐门票
2019/07/10 全球购物
香港连卡佛百货官网:Lane Crawford
2019/09/04 全球购物
幼儿园家长安全责任书
2014/07/22 职场文书
中学学校门卫岗位职责
2014/08/15 职场文书
2014年施工员工作总结
2014/11/18 职场文书
2015年世界粮食日演讲稿
2015/03/20 职场文书
小爸爸观后感
2015/06/15 职场文书
宾馆安全管理制度
2015/08/06 职场文书
公司与个人合作协议书
2016/03/19 职场文书
Python实现简单的猜单词
2021/06/15 Python