标准浏览器和IE浏览器在使用 localeCompare() 的时是有区别
localeCompare()
方法的返回值为Number类型,返回-1、0、1三者之一。
如果当前字符串对象排在str
之前,则localeCompare()
返回 -1;如果当前字符串排在str
之后,则返回 1;如果两个字符串相等,则返回 0。该比较基于本地区域设置的字符顺序(使用底层操作系统提供的排序规则)。
我们简单理解一下 localeCompare()的用法:
语法stringObject.localeCompare(target);//target要以本地特定的顺序与 stringObject 进行比较的字符串。
var str = "张三"; // 张三(zhangsan)在李四(lisi)之后 document.writeln( str.localeCompare("李四") ); // 1 str = "ABC"; // ABC在DEF之前 document.writeln( str.localeCompare("DEF") ); // -1
var str="北京"; var var2="北京"; var res=str.localeCompare(var2); console.log(res); //输出0,相等
var str="星期一"; var var2="星期二"; var res=str.localeCompare(var2); console.log(res);//输出1
stringObject.localeCompare(target)IE:
target和stringObject进行比较时,如果stringObject之前已经有target的值,对比后它会返回-1
标准:
反之 返回1
IE浏览器记录字符串的时候每个字符都会一一拆分,生成多个字符串进行展示,而标准浏览器不拆分,就显示一条字符串。