在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 相关文章推荐
在js(jquery)中获得文本框焦点和失去焦点的方法
Dec 04 Javascript
Underscore.js 的模板功能介绍与应用
Dec 24 Javascript
轻量级jQuery插件slideBox实现带底栏轮播(焦点图)代码
Mar 28 Javascript
JavaScript之Canvas_动力节点Java学院整理
Jul 04 Javascript
js图片上传的封装代码
Aug 01 Javascript
Vue封装Swiper实现图片轮播效果
Feb 06 Javascript
vue cli2.0单页面title修改方法
Jun 07 Javascript
对类Vue的MVVM前端库的实现代码
Sep 07 Javascript
深入浅析Node.js 事件循环、定时器和process.nextTick()
Oct 22 Javascript
JS开发 富文本编辑器TinyMCE详解
Jul 19 Javascript
Vue路由对象属性 .meta $route.matched详解
Nov 04 Javascript
详解uniapp的全局变量实现方式
Jan 11 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
国内php原创论坛
2006/10/09 PHP
一个简单的自动发送邮件系统(一)
2006/10/09 PHP
mysql 全文搜索 技巧
2007/04/27 PHP
PHP中extract()函数的妙用分析
2012/07/11 PHP
ThinkPHP连接数据库的方式汇总
2014/12/05 PHP
PHP提示Warning:phpinfo() has been disabled函数禁用的解决方法
2014/12/17 PHP
jQuery1.3.2 升级到jQuery1.4.4需要修改的地方
2011/01/06 Javascript
js之事件冒泡和事件捕获详细介绍
2013/10/28 Javascript
JS常用正则表达式总结
2013/11/12 Javascript
js获取IP地址的方法小结
2014/07/01 Javascript
JavaScript fontsize方法入门实例(按照指定的尺寸来显示字符串)
2014/10/17 Javascript
浅谈nodeName,nodeValue,nodeType,typeof 的区别
2015/01/13 Javascript
相册展示PhotoSwipe.js插件实现
2016/08/25 Javascript
jquery自定义插件结合baiduTemplate.js实现异步刷新(附源码)
2016/12/22 Javascript
详解前端构建工具gulpjs的使用介绍及技巧
2017/01/19 Javascript
js 判断一个数字是不是2的n次方幂的实例
2017/11/26 Javascript
JS 实现缓存算法的示例(FIFO/LRU)
2018/03/20 Javascript
JavaScript从原型到原型链深入理解
2019/06/03 Javascript
微信小程序左右滚动公告栏效果代码实例
2019/09/16 Javascript
Openlayers3实现车辆轨迹回放功能
2020/09/29 Javascript
[01:20]DOTA2更新全新英雄 天涯墨客现已加入游戏
2018/08/25 DOTA
python 自动化将markdown文件转成html文件的方法
2016/09/23 Python
Python正则表达式常用函数总结
2017/06/24 Python
python读写LMDB文件的方法
2018/07/02 Python
通过代码实例了解Python异常本质
2020/09/16 Python
工程造价管理专业大专生求职信
2013/10/06 职场文书
十八届三中全会个人学习材料
2014/02/13 职场文书
酒店员工职业生涯规划
2014/02/25 职场文书
代办委托书怎样写
2014/04/08 职场文书
团委竞选演讲稿
2014/04/24 职场文书
大学生求职计划书
2014/04/30 职场文书
党员个人对照检查材料
2014/10/01 职场文书
维稳工作情况汇报
2014/10/27 职场文书
IDEA 链接Mysql数据库并执行查询操作的完整代码
2021/05/20 MySQL
Python连续赋值需要注意的一些问题
2021/06/03 Python
MySQL 使用索引扫描进行排序
2021/06/20 MySQL