zoukankan      html  css  js  c++  java
  • 汉字数组排序及如何检测汉字

    起因

            最近接触了一道有意思的题目,就是单击表格的表头,根据表头的那一栏进行排序。恰好有一栏的数据全部是中文汉字,如果仅仅对于汉字数组使用默认的sort排序,那么是针对汉字的unicode值进行比较排序,结果肯定与我们习惯的根据汉字的拼音排序大不相同。但是对于一个简单易用的程序而言,没有必要写个复杂的算法来将汉字转化为拼音,然后在进行ascII码值比较,代价有些大,幸好,js中有一个函数可以基本解决我们的问题,那就是localCompare函数。

    localCompare()

            localCompare函数在W3C规范上是这样定义的:

    用本地特定的顺序来比较两个字符串。localeCompare() 方法提供的比较字符串的方法,考虑了默认的本地排序规则。ECMAscript 标准并没有规定如何进行本地特定的比较操作,它只规定该函数采用底层操作系统提供的排序规则。

    可以这样使用:

            str.localCompare(s);

    返回-1,则str<s;返回0,则str==s;返回1,则str>s。

    这样,针对汉字数组,我们就很容易来实现本地化比较。

           Chs.sort(function(a,b){
                        return a.localeCompare(b);
                    });

    监测汉字

              由于汉字在当前的系统中都是unicode编码,因此可以使用unicode码值来判断是否是汉字。汉字在unicode的范围是u4E00-u9FFF,因此可以使用正则来判断。

    function CheckChinese(obj,val){     
      var reg = new RegExp("[\u4E00-\u9FFF]+","g");
      if(reg.test(val))
        return true;
            else
        return false;
      }
  • 相关阅读:
    Matrix Chain Multiplication[HDU1082]
    Color a Tree[HDU1055]
    Piggy-Bank[HDU1114]
    Catching Fish[HDU1077]
    用单位圆覆盖尽量多的点
    LianLianKan[HDU4272]
    Travelling
    求多边形面积
    方格取数(1)
    Pebbles
  • 原文地址:https://www.cnblogs.com/accordion/p/4365155.html
Copyright © 2011-2022 走看看