javascript比较字符串而不区分大小写

时间:2011-02-07 08:51:40

标签: javascript jquery jquery-plugins

我必须使用JavaScript检查一些字符串,但区分大小写会导致问题。 例如

if('abc'=='ABC')
{
return true;
}

尽管单词的含义相同,但它不会进入if循环。 我也不能使用tolower条款,因为我不知道数据将如何实现它意味着什么 例如:

if('aBc'=='abC')
{
return true;
}
如果可以通过jquery完成,如何为此编写JS函数。

4 个答案:

答案 0 :(得分:115)

您可以将两个参数都设置为小写,这样您将始终以不区分大小写的搜索结束。

var string1 = "aBc";
var string2 = "AbC";

if (string1.toLowerCase() === string2.toLowerCase())
{
    #stuff
}

答案 1 :(得分:18)

使用正则表达式的另一种方法(这比Zachary的答案更正确):

var string1 = 'someText',
    string2 = 'SometexT',
    regex = new RegExp('^' + string1 + '$', 'i');

if (regex.test(string2)) {
    return true;
}

RegExp.test()将返回true或false。

此外,将'^'(表示字符串的开头)添加到开头并将'$'(表示字符串的结尾)添加到结尾,确保只有'sometext'是正则表达式才会匹配stringToTest中唯一的文本。如果您正在寻找包含正则表达式的文本,则可以将其保留。

使用string.toLowerCase()方法可能更容易。

所以...正则表达式很强大,但是只有了解它们的工作原理才能使用它们。当你使用一些你不理解的东西时会发生意想不到的事情。

有大量的正则表达式'教程',但大多数似乎都试图推送某个产品。这看起来像是一个体面的教程...被授予,它是为使用PHP编写的,但除此之外,它似乎是一个不错的初学者教程: http://weblogtoolscollection.com/regex/regex.php

这似乎是测试正则表达式的好工具: http://gskinner.com/RegExr/

答案 2 :(得分:9)

您也可以使用string.match()。

var string1 = "aBc";
var match = string1.match(/AbC/i);

if(match) {
}

答案 3 :(得分:4)

试试这个......

if(string1.toLowerCase() == string2.toLowerCase()){
    return true;
}

此外,它不是一个循环,它是一个代码块。循环通常是重复的(虽然它们可能只执行一次),而代码块从不重复。

我读到了关于不使用toLowerCase的说明,但看​​不出为什么会出现问题。