JavaScript比较字符串,使字母在其他字符之前。

问题描述 投票:-2回答:1

如何在JavaScript中比较两个字符串,使字母在其他字符之前出现?我对下划线字符前的字母特别感兴趣,但我更希望有一个通用的解决方案。

例如,下面的代码将返回-1,但我希望它能返回1。

const a = "_";
const b = "A";
return a.localeCompare(b);
javascript string string-comparison
1个回答
2
投票

你可以使用这个简单的regex解决方案

const isLetter = x => /[A-Za-z]/.test(x)

const compare = (a, b) => {
  if (!isLetter(a) && isLetter(b)) return 1
  if (isLetter(a) && !isLetter(b)) return -1
  return a.localeCompare(b)
}

console.log(
  compare('_', 'A')
)
© www.soinside.com 2019 - 2024. All rights reserved.