localeCompare() 应该返回(-1、0 或 1),但是,以下代码在我的 PC 浏览器 Chrome 53 上返回“1”(如预期),但在我的手机浏览器上返回“-8” Samsung Internet for Android 4.0,这应该是一个现代浏览器!
var b = "aZ";
var a= "ab"
var res = b.localeCompare(a);
document.getElementById('alert').innerHTML =res;
<label id="alert">Ret</label>
还有 fiddle : https://jsfiddle.net/4a3rwem1/5/
有什么替代的(也许更全面的)解决方案来比较 JS 中的字符串吗?
最佳答案
您可以使用更小或更大的符号来比较字符串,例如 MDN建议
+(a > b) || +(a === b) - 1
var a = "ab",
b = "aZ",
aa = a.toLowerCase(),
bb = b.toLowerCase(),
res = +(a > b) || +(a === b) - 1;
console.log(res);
关于javascript - localeCompare() 在移动浏览器上的奇怪行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40074158/