localeCompare()移动浏览器上的奇怪行为

时间:2016-10-16 18:51:48

标签: javascript string cross-browser mobile-browser

localeCompare()应返回(-1,0或1),但是,以下代码返回' 1'在我的PC浏览器Chrome 53(正如预期的那样),但是' -8'在我的手机浏览器三星互联网for Android 4.0,这应该是一个现代的brwoser!



var b = "aZ";
var a= "ab"
var res = b.localeCompare(a);
document.getElementById('alert').innerHTML =res;

<label id="alert">Ret</label>
&#13;
&#13;
&#13;

也小提琴: https://jsfiddle.net/4a3rwem1/5/

用于比较JS中的字符串的任何替代(可能更全面)的解决方案?

1 个答案:

答案 0 :(得分:0)

您可以使用更小或更大的符号来比较字符串,例如MDN建议

+(a > b) || +(a === b) - 1

&#13;
&#13;
var a = "ab",
    b = "aZ",
    aa = a.toLowerCase(),
    bb = b.toLowerCase(),
    res = +(a > b) || +(a === b) - 1;

console.log(res);
&#13;
&#13;
&#13;