比较两个 JavaScript 字符串并且忽略大小写

发布于 2022-06-06 21:38:28 字数 2729 浏览 1032 评论 0

在 JavaScript 中比较两个字符串 很容易:只需使用 ===。但是如果你想把大写字母和小写字母同等对待怎么办,所以 Bill@Microsoft.com 相当于 bill@microsoft.com?最基本方法 区分大小写的字符串比较 是使用 toLowerCase() 或者 toUpperCase() 方法来确保两个字符串都是小写或全大写。

const str1 = 'Bill@microsoft.com';
const str2 = 'bill@microsoft.com';

str1 === str2; // false
str1.toLowerCase() === str2.toLowerCase(); // true

Using localeCompare()

JavaScript 的 String#localeCompare()方法 为您提供了对字符串比较的更细粒度的控制。 例如您还可以比较两个忽略 变音符号 。 以下是如何使用不区分大小写的字符串比较 localeCompare()

const str1 = 'Bill@microsoft.com';
const str2 = 'bill@microsoft.com';

str1 === str2; // false

// 0, means these two strings are equal according to `localeCompare()`
str1.localeCompare(str2, undefined, { sensitivity: 'accent' });

localeCompare() 如果要对字符串数组进行排序,忽略大小写,函数特别有用:

const strings = ['Alpha', 'Zeta', 'alpha', 'zeta'];

strings.sort((str1, str2) => str1.localeCompare(str2, undefined, { sensitivity: 'accent' }));

// Case insensitive sorting: ['Alpha', 'alpha', 'Zeta', 'zeta']
strings;

不使用正则表达式

您可能很想使用正则表达式和 JavaScript 正则表达式来比较两个字符串 i 旗帜。

const str1 = 'Bill@microsoft.com';
const str2 = 'bill@microsoft.com';

new RegExp('^' + str1 + '

但是,使用这种方法时,您需要小心 转义特殊的正则表达式字符 。 例如下面的比较失败,而使用它会成功 toLowerCase() 或者 localeCompare()

const str1 = '[hello]';
const str2 = '[Hello]';

new RegExp('^' + str1 + '

你最好使用 toLowerCase() 或者 localeCompare() 而不是使用正则表达式。

, 'i').test(str2); // true

但是,使用这种方法时,您需要小心 转义特殊的正则表达式字符 。 例如下面的比较失败,而使用它会成功 toLowerCase() 或者 localeCompare()


你最好使用 toLowerCase() 或者 localeCompare() 而不是使用正则表达式。

, 'i').test(str2); // false

你最好使用 toLowerCase() 或者 localeCompare() 而不是使用正则表达式。

, 'i').test(str2); // true

但是,使用这种方法时,您需要小心 转义特殊的正则表达式字符 。 例如下面的比较失败,而使用它会成功 toLowerCase() 或者 localeCompare()

你最好使用 toLowerCase() 或者 localeCompare() 而不是使用正则表达式。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据

关于作者

你在我安

暂无简介

文章
评论
25 人气
更多

推荐作者

泛泛之交

文章 0 评论 0

音栖息无

文章 0 评论 0

荆棘i

文章 0 评论 0

泛滥成性

文章 0 评论 0

我还不会笑

文章 0 评论 0

假扮的天使

文章 0 评论 0

    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文