我正在寻找一个用 JavaScript(而不是jQuery)编写的函数,如果给定的单词完全匹配(不应该区分大小写),它将返回 true。
喜欢...
var searchOnstring = " Hi, how are doing?"
if( searchText == 'ho'){
// Output: false
}
if( searchText == 'How'){
// Output: true
}
我正在寻找一个用 JavaScript(而不是jQuery)编写的函数,如果给定的单词完全匹配(不应该区分大小写),它将返回 true。
喜欢...
var searchOnstring = " Hi, how are doing?"
if( searchText == 'ho'){
// Output: false
}
if( searchText == 'How'){
// Output: true
}
您可以使用正则表达式:
\bhow\b
例子:
/\bhow\b/i.test(searchOnstring);
如果你想要一个可变词(例如来自用户输入),你必须注意不要包含特殊的 RegExp 字符。
您必须转义它们,例如使用MDN中提供的功能 (向下滚动一点):
function escapeRegExp(string){
return string.replace(/([.*+?^=!:${}()|\[\]\/\\])/g, "\\$1");
}
var regex = '\\b';
regex += escapeRegExp(yourDynamicString);
regex += '\\b';
new RegExp(regex, "i").test(searchOnstring);
这是一个返回 true 的函数,其中 searchText 包含在 searchOnString 中,忽略大小写:
function isMatch(searchOnString, searchText) {
searchText = searchText.replace(/[-\/\\^$*+?.()|[\]{}]/g, '\\$&');
return searchOnString.match(new RegExp("\\b"+searchText+"\\b", "i")) != null;
}
更新,如前所述,您应该转义输入,我正在使用来自https://stackoverflow.com/a/3561711/241294的转义功能。
尝试这个:
var s = 'string to check', ss= 'to';
if(s.indexOf(ss) != -1){
//output : true
}