JavaScript比较string,而不区分大小写

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

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

它不会进入if循环,尽pipe这个词的含义是相同的。 我不能使用tolower子句,因为我不知道数据将如何来它意味着前:

 if('aBc'=='abC') { return true; } 

如何编写JS函数,如果可以通过jQuery完成。

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

 var string1 = "aBc"; var string2 = "AbC"; if (string1.toLowerCase() === string2.toLowerCase()) { #stuff } 

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

 var string1 = 'someText', string2 = 'SometexT', regex = new RegExp('^' + string1 + '$', 'i'); if (regex.test(string2)) { return true; } 

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

另外,在开始时加上'^'(表示string的开头)和'$'(表示string的结尾),确保只有'sometext'是唯一的文本才能匹配正则expression式在stringToTest中。 如果您正在查找包含正则expression式的文本,可以将它们closures。

使用string.toLowerCase()方法可能会更简单。

所以…正则expression式是强大的,但只有在了解它们如何工作的情况下才能使用它们。 当你使用你不明白的东西的时候会发生意想不到的事情。

有大量的正则expression式“教程”,但大多数似乎试图推动某种产品。 这里看起来像一个体面的教程…授予,它是用PHP编写的,但除此之外,它似乎是一个不错的初学者的教程: http : //weblogtoolscollection.com/regex/regex.php

这似乎是一个很好的testing正则expression式的工具: http : //gskinner.com/RegExr/

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

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

尝试这个…

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

而且,这不是一个循环,而是一个代码块。 循环通常是重复的(尽pipe它们可能只能执行一次),而代码块却不会重复。

我读了你的关于不使用toLowerCase的说明,但不明白为什么这将是一个问题。