zoukankan      html  css  js  c++  java
  • Javascript中得到中英文混合字符串的长度

    Javascript中得到中英文混合字符串的长度

    左直拳

    有同事在公司的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,常常在提交到数据库中造成长度超标的错误,现在用这个方法,可以在提交前先检测一番了。

  • 相关阅读:
    前端之css网页布局等相关内容-54
    前端之css属性设置等相关内容-53
    前端之css选择器等相关内容-52
    前端之HTML标签等相关内容-51
    前端之HTML基础等相关内容-50
    数据库之mysql索引增删改查等相关内容-48
    累了就拥抱下自己
    平静地生活
    良心远大于失败
    独处
  • 原文地址:https://www.cnblogs.com/leftfist/p/4258361.html
Copyright © 2011-2022 走看看