博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
javascript的字符串大小比较
阅读量:5106 次
发布时间:2019-06-13

本文共 2029 字,大约阅读时间需要 6 分钟。

javascript的字符串大小比较是按照字符串中对应的字符在编码表(UTF-16)中的数值的大小来进行比较的,比如'abcd''abaa'进行比较,先比较第一个字符,发现他们都是a大小一样,然后就会比较第二个发现都是b,然后比较第三个字符c的编码大于a,比较出了大小,所以字符串abcd大于字符串abaa。字符串的前缀不会大于自己,'abcdefe' > 'abc'结果为true

对中文的比较也是同样的规则,比如你好你们进行比较也是比较字符在编码表中的数值大小进行的,如下'你好' > '你们'。首先比较第一个字符,发现'你'大小相同,因为'你'.charCodeAt(0)等于你'.charCodeAt(0)'等于20320,然后比较第二个字符'好''们''好'的编码值为22909,'们'的编码值为20204,所以'好'大于'们'。所以最后'你好'是大于'你们'

'好'.charCodeAt(0)  -> 22909'们'.charCodeAt(0)  -> 20204
  1. Else, both px and py are Strings
    1. If py is a prefix of px, return false. (A String value p is a prefix of String value q if q can be the result of concatenating p and some other String r. Note that any String is a prefix of itself, because r may be the empty String.)
    2. If px is a prefix of py, return true.
    3. Let k be the smallest nonnegative integer such that the character at position k within px is different from the character at position k within py. (There must be such a k, for neither String is a prefix of the other.)
    4. Let m be the integer that is the code unit value for the character at position k within px.
    5. Let n be the integer that is the code unit value for the character at position k within py.
    6. If m < n, return true. Otherwise, return false.

NOTE 1Step 3 differs from step 7 in the algorithm for the addition operator + () in using and instead of or.

NOTE 2The comparison of Strings uses a simple lexicographic ordering on sequences of code unit values. There is no attempt to use the more complex, semantically oriented definitions of character or string equality and collating order defined in the Unicode specification. Therefore String values that are canonically equal according to the Unicode standard could test as unequal. In effect this algorithm assumes that both Strings are already in normalised form. Also, note that for strings containing supplementary characters, lexicographic ordering on sequences of UTF-16 code unit values differs from that on sequences of code point values.

参考

转载于:https://www.cnblogs.com/ZiYangZhou/p/8407346.html

你可能感兴趣的文章
引用 移植Linux到s3c2410上
查看>>
BizTalk 2010 单机安装
查看>>
人与人之间的差距是从大学开始的
查看>>
vue 开发过程中遇到的问题
查看>>
[Swift]LeetCode341. 压平嵌套链表迭代器 | Flatten Nested List Iterator
查看>>
[Swift]LeetCode223. 矩形面积 | Rectangle Area
查看>>
[Javascript] Identify and Deal with NaN in JavaScript
查看>>
MySQL5.7开多实例指导
查看>>
贪心——洛谷P1016 旅行家的预算
查看>>
【学习整理】树状数组 区间修改+查询
查看>>
你知道电脑硬盘怎么分区吗?
查看>>
去除Visual Studio引号中的内容和注释中出现的波浪下划线
查看>>
C#多线程方法 可传参
查看>>
[zz]一个简单加密病毒的框架
查看>>
supervisor配置详解
查看>>
java 获取当月第一天和最后一天 获取前一个月第一天和最后一天
查看>>
js 获得日期相差天数
查看>>
速度环加位置环进行电机控制
查看>>
发布.net core项目 System.AggregateException: 发生一个或多个错误
查看>>
空间滤波
查看>>