请参阅以下最小示例。所有示例均在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)