javascript – 不区分大小写的搜索
作者:互联网
我正在尝试使用JavaScript中的两个字符串进行不区分大小写的搜索.
通常它会是这样的:
var string="Stackoverflow is the BEST";
var result= string.search(/best/i);
alert(result);
/ i标志用于不区分大小写.
但我需要搜索第二个字符串;没有旗帜它完美无缺:
var string="Stackoverflow is the BEST";
var searchstring="best";
var result= string.search(searchstring);
alert(result);
如果我将/ i标志添加到上面的示例中,它将搜索searchstring而不是变量“searchstring”中的内容(下一个示例不起作用):
var string="Stackoverflow is the BEST";
var searchstring="best";
var result= string.search(/searchstring/i);
alert(result);
我怎样才能做到这一点?
解决方法:
是的,使用.match而不是.search. .match调用的结果将返回与其自身匹配的实际字符串,但它仍可用作布尔值.
var string = "Stackoverflow is the BEST";
var result = string.match(/best/i);
// result == 'BEST';
if (result){
alert('Matched');
}
使用像这样的正则表达式可能是在JavaScript中做到这一点的最简单和最明显的方法,但请记住它是一个正则表达式,因此可以包含正则表达式元字符.如果你想从其他地方获取字符串(例如,用户输入),或者如果你想避免必须逃避很多元字符,那么你最好使用indexOf,如下所示:
matchString = 'best';
// If the match string is coming from user input you could do
// matchString = userInput.toLowerCase() here.
if (string.toLowerCase().indexOf(matchString) != -1){
alert('Matched');
}
标签:javascript,search,case-insensitive,string-comparison 来源: https://codeday.me/bug/20190916/1806848.html