请参阅以下最小示例。所有示例均在Chrome 76.0.3809.100,Firefox 68.0.2和Node.js 11.15.0中进行了测试。所有结果都相同。
为了完整起见,提供了所有相关选项(但是它们并未真正计数:默认sensitivity
值为'variant'
,它的工作方式与不带'case'
重音'sort'
符号的字符几乎相同,使用默认用法)。
没有设置能够解决下面详述的矛盾。我也尝试了几种语言选项,但无济于事。
范例1。
以下是正确的:'a'
在之前'b'
。
const result = 'a'.localeCompare('b', 'en', {
sensitivity: 'case',
usage: 'sort',
caseFirst: 'lower'
});
// -1
Run Code Online (Sandbox Code Playgroud)
示例2
以下是正确的:caseFirst: 'lower'
set,位于'b'
之前'B'
。
const result = 'b'.localeCompare('B', 'en', {
sensitivity: 'case',
usage: 'sort',
caseFirst: 'lower'
});
// -1
Run Code Online (Sandbox Code Playgroud)
范例3。
以下也是正确的。caseFirst
实现不需要支持该选项,但是支持。随着caseFirst: 'upper'
集,'b'
之后来到'B'
。
const result = 'b'.localeCompare('B', 'en', {
sensitivity: 'case',
usage: …
Run Code Online (Sandbox Code Playgroud)