javascript中使用正则计算中文长度的例子


Posted in Javascript onApril 29, 2014

由于javascript是unicode编码的,所有的字符对于它来说一个就是一个,但是后台程序不是,通常在后台程序中一个中文是占两个字节的,这就导致了前后端校验长度不一致,这个问题可以通过正则来解决。

function getRealLen( str ) {
    return str.replace(/[^\x00-\xff]/g, '__').length; //这个把所有双字节的都给匹配进去了
}

附赠另一小则技巧:

有时候为了美观,不影响布局和界面,会以一些文案进行截字,但是中文的宽度和英文的宽度不一样,如果按照英文标准来截中文的,或者按中文标准截英文的,显然会忽长忽短,特别是昵称这类容易既有中文又有英文的东西,同样我们可以用上面的思路

function beautySub( str, len) {
       var reg = /[\u4e00-\u9fa5]/g,    //专业匹配中文
           slice = str.substring(0,len),
           realen = len - ( ~~( slice.match(reg) && slice.match(reg).length ) );
           return slice.substring(0, realen ? realen : 1);
}

这里我们认为一个中文字符是两个英文字符的宽度,如果你是完美主义者,应该想到j和w,m的宽度是不一样的,w和m以及大写的部分字母和中文的宽度是一致的,这个函数的正则还有相当大的改进空间,同时也可以指定截字的起始位置。
Javascript 相关文章推荐
Javascript级联下拉菜单以及AJAX数据验证核心代码
May 10 Javascript
提取jquery的ready()方法单独使用示例
Mar 25 Javascript
jquery easyui 结合jsp简单展现table数据示例
Apr 18 Javascript
JS实现闪动的title消息提醒效果
Jun 20 Javascript
使用JavaScript实现连续滚动字幕效果的方法
Jul 07 Javascript
跟我学习javascript的循环
Nov 18 Javascript
jquery判断复选框选中状态以及区分attr和prop
Dec 18 Javascript
BootStrap轻松实现微信页面开发代码分享
Oct 21 Javascript
JS简单实现获取元素的封装操作示例
Apr 07 Javascript
Bootstrap table使用方法记录
Aug 23 Javascript
js中url对象化管理分析
Dec 29 Javascript
Angular搜索场景中使用rxjs的操作符处理思路
May 30 Javascript
一个简单的Node.js异步操作管理器分享
Apr 29 #Javascript
IE浏览器中图片onload事件无效的解决方法
Apr 29 #Javascript
javascript的创建多行字符串的7种方法
Apr 29 #Javascript
Javascript实现的常用算法(如冒泡、快速、鸽巢、奇偶等)
Apr 29 #Javascript
当某个文本框成为焦点时即清除文本框内容
Apr 28 #Javascript
JS实现两个大数(整数)相乘
Apr 28 #Javascript
关于img的href和src取变量及赋值的方法
Apr 28 #Javascript
You might like
PHP获取youku视频真实flv文件地址的方法
2014/12/23 PHP
thinkPHP5.0框架事务处理操作简单示例
2018/09/07 PHP
laravel实现上传图片,并且制作缩略图,按照日期存放的代码
2019/10/16 PHP
PHP接入支付宝接口失效流程详解
2020/11/10 PHP
广告显示判断
2006/08/31 Javascript
JavaScript实现网页上的浮动广告的简单方法
2013/06/14 Javascript
javascript去掉代码里面的注释
2015/07/24 Javascript
JavaScript的ExtJS框架中表格的编写教程
2016/05/21 Javascript
vue元素实现动画过渡效果
2017/07/01 Javascript
JavaScript文件的同步和异步加载的实现代码
2017/08/19 Javascript
Vue中的v-for指令不起效果的解决方法
2018/09/27 Javascript
策略模式实现 Vue 动态表单验证的方法
2019/09/16 Javascript
JavaScript设计模式--简单工厂模式实例分析【XHR工厂案例】
2020/05/23 Javascript
Python 调用DLL操作抄表机
2009/01/12 Python
Cython 三分钟入门教程
2009/09/17 Python
使用python BeautifulSoup库抓取58手机维修信息
2013/11/21 Python
Python中列表的一些基本操作知识汇总
2015/05/20 Python
深入浅析Python字符编码
2015/11/12 Python
python 实现一个贴吧图片爬虫的示例
2017/10/12 Python
python先序遍历二叉树问题
2017/11/10 Python
如何在python中使用selenium的示例
2017/12/26 Python
python机器人行走步数问题的解决
2018/01/29 Python
TensorFlow 合并/连接数组的方法
2018/07/27 Python
用Python和WordCloud绘制词云的实现方法(内附让字体清晰的秘笈)
2019/01/08 Python
python使用装饰器作日志处理的方法
2019/07/11 Python
python与mysql数据库交互的实现
2020/01/06 Python
浅析Python 字符编码与文件处理
2020/09/24 Python
python 利用百度API识别图片文字(多线程版)
2020/12/14 Python
新奇的小玩意:IWOOT
2016/07/21 全球购物
美国复古街头服饰精品店:Need Supply Co.
2017/02/22 全球购物
新西兰最大的品牌运动鞋购物网站:Platypus NZ
2017/10/27 全球购物
英国受欢迎的运动鞋和街头服装商店:Footasylum
2018/06/12 全球购物
生产车间班组长岗位职责
2014/01/06 职场文书
秋季运动会广播稿大全
2014/02/17 职场文书
Pygame Draw绘图函数的具体使用
2021/11/17 Python
python数据可视化使用pyfinance分析证券收益示例详解
2021/11/20 Python