zoukankan      html  css  js  c++  java
  • JS计算混合字符串长度

    用的是正则表达式

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

  • 相关阅读:
    java中讲讲PrintStream的用法,举例?
    Spark Scala当中reduceByKey的用法
    springboot与ActiveMQ整合
    solr(六): 集群
    zookeeper集群
    solr(五): centos中, 整合 tomcat&solr
    springboot redis(单机/集群)
    redis 五种数据类型
    redis 集群搭建: redis-cluster
    redis 持久化
  • 原文地址:https://www.cnblogs.com/MiniHouse/p/3620261.html
Copyright © 2011-2022 走看看