如何在JavaScript中比较两个字符串,使字母在其他字符之前出现?我对下划线字符前的字母特别感兴趣,但我更希望有一个通用的解决方案。
例如,下面的代码将返回-1,但我希望它能返回1。
const a = "_";
const b = "A";
return a.localeCompare(b);
你可以使用这个简单的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')
)