首页 > JavaScript 阅读:767

JS字符串比较大小

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 标准没有规定如何进行本地化比较操作。

localeCompare() 方法包含一个参数,指定要比较的目标字符串。如果当前字符串小于参数字符串,则返回小于 0 的数;如果大于参数字符串,则返回大于 0 的数;如果两个字符串相等,或与本地排序约定没有区别,则该方法返回 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”

编程帮,一个分享编程知识的公众号。跟着站长一起学习,每天都有进步。

通俗易懂,深入浅出,一篇文章只讲一个知识点。

文章不深奥,不需要钻研,在公交、在地铁、在厕所都可以阅读,随时随地涨姿势。

文章不涉及代码,不烧脑细胞,人人都可以学习。

当你决定关注「编程帮」,你已然超越了90%的程序员!

编程帮二维码
微信扫描二维码关注