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

Javascript localeCompare()移动浏览器上的奇怪行为,javascript,string,cross-browser,mobile-browser,Javascript,String,Cross Browser,Mobile Browser,localeCompare()应该返回(-1、0或1),但是,以下代码在我的PC浏览器Chrome 53上返回“1”(如预期),但在我的手机浏览器Samsung Internet for Android 4.0上返回“-8”,这应该是一款现代的浏览器 var b=“aZ”; var a=“ab” var res=b.localeCompare(a); document.getElementById('alert').innerHTML=res Ret您可以使用较小或较大的符号来比较字符串,如s

localeCompare()应该返回(-1、0或1),但是,以下代码在我的PC浏览器Chrome 53上返回“1”(如预期),但在我的手机浏览器Samsung Internet for Android 4.0上返回“-8”,这应该是一款现代的浏览器

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

Ret
您可以使用较小或较大的符号来比较字符串,如suggest

var a=“ab”,
b=“aZ”,
aa=a.toLowerCase(),
bb=b.toLowerCase(),
res=+(a>b)| |+(a==b)-1;

控制台日志(res)您可以使用较小或较大的符号来比较字符串,如suggest

var a=“ab”,
b=“aZ”,
aa=a.toLowerCase(),
bb=b.toLowerCase(),
res=+(a>b)| |+(a==b)-1;

控制台日志(res)
您的浏览器基于,您可以在上报告此问题,因为
localeCompare
显然应该在Servo中得到支持。谢谢@adeneo,我做到了!您的浏览器基于,您可以在上报告此问题,因为伺服系统显然应该支持
localeCompare
。谢谢@adeneo,我做到了!这仍然是错误的-8 < 0 & 1 > 0. 我刚刚在S7上进行了测试,使用三星的浏览器确实返回了-8。Easy Solution在三星上使用Chrome,或向三星发送错误报告&希望一切顺利。你从哪里获得8?你的意思是什么?OP的问题->
但在我的手机浏览器上使用-8
谢谢。我测试了这个@尼娜,那不行。想想看:我没有。这些是Firebase ID(),但仍然是错误的-8 < 0 & 1 > 0. 我刚刚在S7上进行了测试,使用三星的浏览器确实返回了-8。Easy Solution在三星上使用Chrome,或向三星发送错误报告&希望一切顺利。你从哪里获得8?你的意思是什么?OP的问题->
但在我的手机浏览器上使用-8
谢谢。我测试了这个@尼娜,那不行。想想看:我没有。这些是Firebase ID()
+(a > b) || +(a === b) - 1