我需要使用JavaScript检查一些字符串,但大小写敏感性会引起问题。例如:
if('abc'=='ABC')
{
return true;
}
虽然单词的意思相同,但它不会进入 if 循环。我也无法使用 tolower 子句,因为我不知道数据将如何出现。例如:
if('aBc'=='abC')
{
return true;
}
如何编写JS函数,如果可以使用jQuery来完成它。
我需要使用JavaScript检查一些字符串,但大小写敏感性会引起问题。例如:
if('abc'=='ABC')
{
return true;
}
虽然单词的意思相同,但它不会进入 if 循环。我也无法使用 tolower 子句,因为我不知道数据将如何出现。例如:
if('aBc'=='abC')
{
return true;
}
如何编写JS函数,如果可以使用jQuery来完成它。
你可以将两个参数都转换为小写,这样你就能进行大小写不敏感的搜索。
var string1 = "aBc";
var string2 = "AbC";
if (string1.toLowerCase() === string2.toLowerCase())
{
#stuff
}
.toLowerCase()
而应该使用.toUpperCase()
。请参见https://dev59.com/IXI95IYBdhLWcg3wzhd9和http://msdn.microsoft.com/en-us/library/bb386042.aspx。 - Adriano另一种使用正则表达式的方法(比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/
new RegExp('^(a$', 'i')
- Bohdan Lyzanetsvar string1 = "aBc";
var match = string1.match(/AbC/i);
if(match) {
}
/^abc$/i.test("aBc")
,因为在开头和结尾没有锚点的情况下,它实际上是表示包含而不是相等。 - John Leidegren试试这个...
if(string1.toLowerCase() == string2.toLowerCase()){
return true;
}
此外,它不是一个循环,而是一段代码块。循环通常会重复执行(尽管可能只执行一次),而代码块永远不会重复。
我看到你的注释关于不使用 toLowerCase,但是我不明白为什么它会有问题。