JavaScript中字符串的比较规则

JavaScript能够根据字符的 Unicode 编码大小逐位比较字符串大小

使用 >、<、==、=== 来比较字符串大小

在JavaScript 中,可以直接使用 >、<、==、=== 来比较两个字符串的大小,就像比较两个数字一样

例如,小写字母 a 的编码为 97,大写字母 A 的编码为 65,则字符“a”就大于“A”。

console.log("a" > "A");    // true

再如,“中国人”的 Unicode 编码是 \u4e2d\u56fd\u4eba,“编程语言”的编码是 \u7f16\u7a0b\u8bed\u8a00,因为 \u4e2d 小于 \u7f16,所以“中国人”就小于“编程语言”。

console.log("中国人"<"编程语言");  // true

使用 localeCompare() 方法

使用字符串的 localeCompare() 方法,可以根据本地约定顺序来比较两个字符串的大小(返回一个数字来指示一个参考字符串是否在排序顺序前面或之后或与给定字符串相同 )。ECMAScript 标准没有规定如何进行本地化比较操作。

  • 当 引用字符串 在 比较字符串 前面时返回 -1
  • 当 引用字符串 在 比较字符串 后面时返回 1
  • 相同位置时返回 0

下面代码把字符串“JavaScript”转换为数组,然后按本地字符顺序进行排序。

var s = "JavaScript"; 
var a = s.split("");  
var s1 = a.sort(function (a, b)) {  
    return a.localeCompare(b);  // 将根据前后字符在本地的约定进行排序
});
a = s1.join("");  
console.log(a);  // "aaciJprStv"

参考资料:http://c.biancheng.net/view/5594.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值