javascript基础学习系列六十二:localeCompare()方法

最后一个与模式匹配相关的字符串方法是 split()。这个方法会根据传入的分隔符将字符串拆分成数组。作为分隔符的参数可以是字符串,也可以是 RegExp 对象。(字符串分隔符不会被这个方法当成 正则表达式。)还可以传入第二个参数,即数组大小,确保返回的数组不会超过指定大小。来看下面的 例子:

let colorText = "red,blue,green,yellow";
let colors1 = colorText.split(",");
let colors2 = colorText.split(",", 2);
let colors3 = colorText.split(/[^,]+/);
// ["red", "blue", "green", "yellow"]
// ["red", "blue"]
// ["", ",", ",", ",", ""]

在这里,字符串 colorText 是一个逗号分隔的颜色名称符串。调用 split(“,”)会得到包含这些 3 颜色名的数组,基于逗号进行拆分。要把数组元素限制为 2 个,传入第二个参数 2 即可。最后,使用正
则表达式可以得到一个包含逗号的数组。注意在最后一次调用 split()时,返回的数组前后包含两个空 字符串。这是因为正则表达式指定的分隔符出现在了字符串开头(“red”)和末尾(“yellow”)。

最后一个方法是 localeCompare(),这个方法比较两个字符串,返回如下 3 个值中的一个。

  • 如果按照字母表顺序,字符串应该排在字符串参数前头,则返回负值。
  • 如果字符串与字符串参数相等,则返回 0。
  • 如果按照字母表顺序,字符串应该排在字符串参数后头,则返回正值。

下面是一个例子:

let stringValue = "yellow";
console.log(stringValue.localeCompare("brick"));  // 1
console.log(stringValue.localeCompare("yellow")); // 0
console.log(stringValue.localeCompare("zoo"));    // -1

在这里,字符串"yellow"与 3 个不同的值进行了比较:“brick”、“yellow"和"zoo”。“brick” 按字母表顺序应该排在"yellow"前头,因此 localeCompare()返回 1。“yellow"等于"yellow”,因 此"localeCompare()"返回 0。最后,"zoo"在"yellow"后面,因此 localeCompare()返回-1。强调 一下,因为返回的具体值可能因具体实现而异,所以最好像下面的示例中一样使用 localeCompare():

 console.log(`The string 'yellow' comes before the string '${value}'.`); } else if (result > 0) {
console.log(`The string 'yellow' comes after the string '${value}'.`); } else {
console.log(`The string 'yellow' is equal to the string '${value}'.`); }
}
determineOrder("brick");
determineOrder("yellow");
determineOrder("zoo");

这样一来,就可以保证在所有实现中都能正确判断字符串的顺序了。 localeCompare()的独特之处在于,实现所在的地区(国家和语言)决定了这个方法如何比较字符串。

  • 10
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值