操作符<或比;比较两个字符串时工作
How does operator < or > work when comparing two strings?
我使用<
比较两个字符串,像这样:
console.log('ca'<'bb'); //false
我已经知道它比较字符的Unicode编号。因为c
不小于b
。
但是当我这样做的时候:
console.log('ba'<'bb');//true
让我感到困惑,因为b
不小于b
本身,似乎它只是跳过它并比较下一个字符。
无论如何,我想知道当<
或>
用于比较两个字符串时,这里的规则是什么,对于一些复杂的情况,如果两个字符串有不同的长度怎么办?
它完全按照您的建议执行—它跳过两个字符串中相同的字符,并按代码单位值比较第一个不同的字符。规范中的抽象关系比较算法解释了这一点(强调添加):
。如果py是px的前缀,则返回false。b.如果px是py的前缀,返回true。
c. 设k为最小的非负整数,使得px中位置k的字符与py中位置k的字符不同。(必须有这样的k,因为两个字符串都不是另一个字符串的前缀)
d.设m为px内位置k字符的编码单位值的整数。e.设n为py中位置k字符的编码单位值的整数。f. If m,返回true。否则返回false。
字符串按字母顺序比较,顺序如下:第一个字母,第二个字母,等等:
'ba'<'bb'
为真,因为
'ca'<'bb'
为假,因为字母c在b之后。(c> b)
这是lexicographic
的比较。
从第一个字母开始,直到不匹配为止。
console.log("ca"& lt;"bb");//错误
It starts with c<b ? no. b<c? yes. -> c is 'greater' than b, therefore ca < bb -> false.
console.log("ba"& lt;"bb");//真正的
It starts with b<b ? no. b > b? no. They both equal -> continue to next letter.
a < b ? yes. Therefore -> ba < bb -> true.
WIKI 相关文章:
- jsf中两个字符串的颜色代码差异
- 可以't在JavaScript中比较两个字符串
- jQuery在两个字符串标识符之间选择HTML
- 为什么脚本标记被分解为两个字符串
- 比较Javascript中的两个字符串时出错
- 如何检查两个字符串是否具有相同的字符,包括特殊字符
- Javascript正则表达式来比较两个字符串
- 使用Javascript获取两个字符串之间的字符串数组
- 如何比较两个字符串并删除jquery中的元素
- 如何在 javascript 中使用正则表达式在其他两个字符串之间找到一个字符串
- 删除两个字符串正则表达式之间的所有内容
- Javascript Regex匹配两个字符串之间的子字符串,但子字符串可以包含DOT(.)
- 在jQuery或JavaScript中获取两个字符串之间的文本
- 为什么不是'当试图使用Ajax和外部PHP文件发布内容时,我的表单工作不正常,该文件接收两个字符串
- 比较javascript/jquery中的两个字符串
- 如何在javascript中无空格地追加两个字符串
- 函数,返回javascript中两个字符串数组的差值
- 在javascript中组合使用连字符连接的两个字符串
- 如何在anular.js视图中比较两个字符串
- 替换两个字符串之间的多行文本