ank*_*kur 60 javascript jquery jquery-plugins
我必须使用JavaScript检查一些字符串,但区分大小写会导致问题.例如
if('abc'=='ABC')
{
return true;
}
Run Code Online (Sandbox Code Playgroud)
尽管单词的含义相同,但它不会进入if循环.我也不能使用tolower条款,因为我不知道数据如何来它对于ex意味着:
if('aBc'=='abC')
{
return true;
}
Run Code Online (Sandbox Code Playgroud)
如果可以通过jquery完成,如何为此编写JS函数.
Gaz*_*ler 117
您可以将两个参数都设置为小写,这样您将始终以不区分大小写的搜索结束.
var string1 = "aBc";
var string2 = "AbC";
if (string1.toLowerCase() === string2.toLowerCase())
{
#stuff
}
Run Code Online (Sandbox Code Playgroud)
Akr*_*kos 18
使用正则表达式的另一种方法(这比Zachary的答案更正确):
var string1 = 'someText',
string2 = 'SometexT',
regex = new RegExp('^' + string1 + '$', 'i');
if (regex.test(string2)) {
return true;
}
Run Code Online (Sandbox Code Playgroud)
RegExp.test()将返回true或false.
此外,将'^'(表示字符串的开头)添加到开头并将'$'(表示字符串的结尾)添加到结尾,确保只有'sometext'是唯一的文本时,正则表达式才会匹配在stringToTest中.如果您正在查找包含正则表达式的文本,则可以将其保留为关闭状态.
使用string.toLowerCase()方法可能更容易.
所以......正则表达式很强大,但是只有了解它们的工作原理才能使用它们.当您使用不理解的东西时,会发生意外的事情.
有大量的正则表达式'教程',但大多数似乎试图推动某个产品.这看起来像是一个体面的教程...被授予,它是为使用PHP编写的,但除此之外,它似乎是一个不错的初学者教程:http: //weblogtoolscollection.com/regex/regex.php
这似乎是测试正则表达式的好工具:http: //gskinner.com/RegExr/
您也可以使用string.match().
var string1 = "aBc";
var match = string1.match(/AbC/i);
if(match) {
}
Run Code Online (Sandbox Code Playgroud)
尝试这个...
if(string1.toLowerCase() == string2.toLowerCase()){
return true;
}
Run Code Online (Sandbox Code Playgroud)
此外,它不是一个循环,它是一个代码块。循环通常会重复(尽管它们可能只执行一次),而代码块从不重复。
我阅读了您关于不使用 toLowerCase 的说明,但不明白为什么会出现问题。