不区分大小写的JavaScript字符串比较
如何在JavaScript中执行不区分大小写的字符串比较?
最简单的方法(如果你不担心特殊的Unicode字符)就是调用toUpperCase
:
var areEqual = string1.toUpperCase() === string2.toUpperCase();
在JavaScript中进行不区分大小写的比较的最佳方式是使用带有'i'标志的RegExp match()方法。
JavaScript:不区分大小写的搜索
当两个被比较的字符串都是变量(而不是常量)时,它会更复杂一些,因为您需要从字符串中生成RegExp,但将该字符串传递给RegExp构造函数会导致不正确的匹配或失败的匹配,如果该字符串有特殊的正则表达式字符在里面。
如果您关心国际化,请勿使用toLowerCase()或toUpperCase(),因为它不会在所有语言中提供准确的不区分大小写的比较。
http://www.i18nguy.com/unicode/turkish-i18n.html
编辑 :这个答案是7岁。 今天你应该使用localeCompare
。
请记住,套管是特定于语言环境的操作。 根据情况,您可能需要考虑这一点。 例如,如果您要比较两个人的姓名,您可能需要考虑区域设置,但是如果您比较机器生成的值(如UUID),则可能不会。 这就是为什么我在我的utils库中使用以下功能(请注意,性能原因不包括类型检查)。
function compareStrings (string1, string2, ignoreCase, useLocale) {
if (ignoreCase) {
if (useLocale) {
string1 = string1.toLocaleLowerCase();
string2 = string2.toLocaleLowerCase();
}
else {
string1 = string1.toLowerCase();
string2 = string2.toLowerCase();
}
}
return string1 === string2;
}
链接地址: http://www.djcxy.com/p/13077.html