小编Som*_*ucz的帖子

String.prototype.localeCompare处理大小写不一致?

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

javascript sorting string

10
推荐指数
1
解决办法
101
查看次数

标签 统计

javascript ×1

sorting ×1

string ×1