javascript compare strings without being case sensitive
本问题已经有最佳答案,请猛点这里访问。
我必须使用javascript检查一些字符串,但区分大小写会造成问题。例如
1 2 3 4 | if('abc'=='ABC') { return true; } |
它不会进入if循环,尽管单词的含义相同。我也不能用tolower子句,因为我不知道数据的含义对于EX:
1 2 3 4 | if('abc'=='ABC') { return true; } |
如果可以通过jquery完成,那么如何为此编写JS函数。
您可以将这两个参数都设为小写,这样,您将始终以不区分大小写的搜索结束。
1 2 3 4 5 6 7 | var string1 ="aBc"; var string2 ="AbC"; if (string1.toLowerCase() === string2.toLowerCase()) { #stuff } |
另一种使用正则表达式的方法(这比Zachary的答案更正确):
1 2 3 4 5 6 7 | 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/
也可以使用string.match()。
1 2 3 4 5 | var string1 ="aBc"; var match = string1.match(/AbC/i); if(match) { } |
试试这个…
1 2 3 | if(string1.toLowerCase() == string2.toLowerCase()){ return true; } |
而且,它不是一个循环,而是一个代码块。循环通常是重复的(尽管它们可能只能执行一次),而代码块从不重复。
我看了你的便条,说不要用托洛维卡糖,但不明白为什么会有问题。