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

 更新时间:2014年04月29日 10:42:41   作者:  
这篇文章主要介绍了javascript中使用正则计算中文长度的例子,需要的朋友可以参考下

由于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以及大写的部分字母和中文的宽度是一致的,这个函数的正则还有相当大的改进空间,同时也可以指定截字的起始位置。

相关文章

  • js 页面关闭前的出现提示的实现代码

    js 页面关闭前的出现提示的实现代码

    主流的浏览器都支持onbeforeunload事件(即页面卸载前触发的事件),而现在大多网站都用到了此功能
    2011-05-05
  • javascript基于DOM实现权限选择实例分析

    javascript基于DOM实现权限选择实例分析

    这篇文章主要介绍了javascript基于DOM实现权限选择的方法,实例分析了javascript针对页面元素的动态选择与添加删除等操作的相关技巧,非常具有实用价值,需要的朋友可以参考下
    2015-05-05
  • javascript比较文档位置

    javascript比较文档位置

    一个很棒的 blog 文章,是 PPK 两年前写的,文章中解释了 contains() 和 compareDocumentPosition() 方法运行在他们各自的浏览器上。从那起,我已经对这些方法做了大量的研究,并且已经在很多场合使用他们。在很多任务中,他们被证明是非常有用的(特别关于结构的抽象 DOM 选择器)。
    2008-04-04
  • 写js时遇到的一些小问题

    写js时遇到的一些小问题

    写js时遇到的一些小问题,需要的朋友可以参考下。
    2010-12-12
  • 原生JS封装Ajax插件(同域、jsonp跨域)

    原生JS封装Ajax插件(同域、jsonp跨域)

    这篇文章主要为大家详细介绍了原生JS封装Ajax插件,为大家介绍不同域之间互相请求资源的跨域,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2016-05-05
  • JS验证有效性示例

    JS验证有效性示例

    有效性验证的方法有很多,在本文将为大家介绍下如何使用js简单实现下,感兴趣的朋友可以参考下
    2013-10-10
  • js精度溢出解决方案

    js精度溢出解决方案

    一般参数值不能超过16位。如果超出16都是用0替代,导致我们查询不到自己想要的结果,本文将介绍如何处理这种现象
    2012-12-12
  • ​​​​​​​分享7 个实用 TypeScript 单行代码

    ​​​​​​​分享7 个实用 TypeScript 单行代码

    这篇文章主要介绍了​​​​​​​分享7 个实用 TypeScript 单行代码,其中包括泛型、断言等高级用法,需要的小伙伴可以参考一下,希望对你的学习有所帮助
    2022-05-05
  • 防止页面被iframe(兼容IE,Firefox火狐)

    防止页面被iframe(兼容IE,Firefox火狐)

    以前发布的防止被iframe的代码,容易在火狐浏览器下, 不断的刷新页面。所以从网站找到了这篇文章。
    2010-07-07
  • 如何用JS实现简单的数据监听

    如何用JS实现简单的数据监听

    这篇文章主要介绍了如何用JS实现简单的数据监听,对数据监听感兴趣的同学,可以参考一下
    2021-05-05

最新评论