我正在寻找一个用javascript编写的函数(不是在jquery中),如果给定的单词完全匹配(不应区分大小写),它将返回true。
像..
var searchOnstring=" Hi, how are doing?"
if( searchText=='ho'){
//output : false
}
if( searchText=='How'){
//output : true
}
感谢。
答案 0 :(得分:15)
您可以使用正则表达式:
\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);
答案 1 :(得分:2)
这是一个返回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的转义函数。
答案 2 :(得分:-2)
答案 3 :(得分:-3)
试试这个:
var s = 'string to check', ss= 'to';
if(s.indexOf(ss) != -1){
//output : true
}