2 elee12345 ELEE12345 于 2017.08.28 15:26 提问

关于localecompare的问题

当我array里面有包含_(底线)和!(感叹号)的元素
比如array = ['_abc','_123',''!abc,''!123],为什么经过排序后
结果:
'_123' '_abc' ‘!123’ ‘!abc’
包含底线的是排在第一个,如果localecompare是按照Unicode排序,不应该!是第一个吗

2个回答

showbo
showbo   Ds   Rxr 2017.08.28 15:45

http://www.w3school.com.cn/jsref/jsref_localeCompare.asp


没有说是用unicode好不好。。unicode用<>


把 < 和 > 运算符应用到字符串时,它们只用字符的 Unicode 编码比较字符串,而不考虑当地的排序规则。以这种方法生成的顺序不一定是正确的。例如,在西班牙语中,其中字符 “ch” 通常作为出现在字母 “c” 和 “d” 之间的字符来排序。

localeCompare() 方法提供的比较字符串的方法,考虑了默认的本地排序规则。ECMAscript 标准并没有规定如何进行本地特定的比较操作,它只规定该函数采用底层操作系统提供的排序规则。
ELEE12345
ELEE12345 好吧,没有认真看清,那你知道本地排序规则值得是什么吗?
3 个月之前 回复
ELEE12345
ELEE12345   2017.08.28 15:54

好吧,没有认真看清,那你知道本地排序规则值得是什么吗?

Csdn user default icon
上传中...
上传图片
插入图片