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

时间:2024-04-10 10:55:18 

由于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,正则,中文长度
0
投稿

猜你喜欢

  • Windows下MySQL 8.0.29 安装和删除图文教程

    2024-01-21 20:18:29
  • 浅谈Python由__dict__和dir()引发的一些思考

    2021-10-06 06:14:10
  • sql server 性能优化之nolock

    2024-01-24 11:34:10
  • Python 使用@property对属性进行数据规范性校验的实现

    2021-03-31 00:37:10
  • 深入mysql基础知识的详解

    2024-01-21 06:04:45
  • SQL SERVER触发器详解

    2024-01-22 01:50:00
  • python字典排序的方法

    2021-06-16 03:43:40
  • IDEA Git Stash 使用详解

    2022-11-05 07:50:09
  • JavaScript,5种调用函数的方法[译]

    2009-02-24 16:26:00
  • Python超详细讲解内存管理机制

    2022-02-21 23:11:47
  • asp任何取得多个表单的值

    2008-04-15 15:31:00
  • 支付宝 接口开发帮助(asp,php,asp.net,jsp)

    2024-05-21 10:11:35
  • python识别图像并提取文字的实现方法

    2023-06-07 18:36:36
  • Python可视化模块altair的使用详解

    2023-10-03 09:00:28
  • php在线打包程序源码

    2024-05-11 09:48:47
  • python fabric实现远程操作和部署示例

    2021-07-18 14:22:14
  • MySQL数据库备份与恢复方法

    2024-01-18 08:54:10
  • 解决GOPATH在GOLAND中的坑

    2023-07-12 23:46:16
  • 一行Python3代码实现解析地址信息

    2023-11-02 14:27:30
  • ASP函数过滤数组中重复数据方法

    2010-01-02 20:32:00
  • asp之家 网络编程 m.aspxhome.com