不区分大小写的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

上一篇: JavaScript case insensitive string comparison

下一篇: Case insensitive string compare in LINQ