比较两个 JavaScript 字符串并且忽略大小写
在 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()
而不是使用正则表达式。
但是,使用这种方法时,您需要小心 转义特殊的正则表达式字符 。 例如下面的比较失败,而使用它会成功 toLowerCase()
或者 localeCompare()
。
你最好使用 toLowerCase()
或者 localeCompare()
而不是使用正则表达式。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
上一篇: Axios 中的 GET 与数据传递
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论