比较类型字符串的数量

时间:2014-11-19 15:01:49

标签: javascript

我正在实施排序功能并遇到以下情况:

'49' > '5' // false
'49' > '4' // true

new String(49).localeCompare('4') // 1
new String(49).localeCompare('5') // -1

预期的行为显然是49> 4或5应该是真的。有没有办法解决这个问题而不将字符串转换为数字?

1 个答案:

答案 0 :(得分:1)

这是比较字符串时的实际预期行为,如here所述。对于这种情况,最简单的方法是将值转换为数字进行比较,如果您想将它们作为数字进行比较。

在框外思考一下,您可以先使用>运算符比较字符串的长度。如果它们是数字字符串,则较长的字符串将具有较高的值(假设您没有像#00; 0024'这样的数字)。如果它们的长度相等,则>运算符将按预期工作。