Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/448.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/reporting-services/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在字符串中搜索整个单词_Javascript - Fatal编程技术网

Javascript 在字符串中搜索整个单词

Javascript 在字符串中搜索整个单词,javascript,Javascript,我正在寻找一个用javascript(而不是jquery)编写的函数,如果给定的单词完全匹配(不应该区分大小写),该函数将返回true 像 var searchOnstring=" Hi, how are doing?" if( searchText=='ho'){ //output : false } if( searchText=='How'){ //output : true } 谢谢。您可以使用正则表达式: \bhow\b 例如: /\b

我正在寻找一个用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字符

您必须转义它们,例如使用中提供的功能(向下滚动一点):

试试这个:

var s = 'string to check', ss= 'to';
if(s.indexOf(ss) != -1){
  //output : true
}

下面是一个返回true的函数,其中searchText包含在searchOnString中,忽略大小写:

function isMatch(searchOnString, searchText) {
  searchText = searchText.replace(/[-\/\\^$*+?.()|[\]{}]/g, '\\$&');
  return searchOnString.match(new RegExp("\\b"+searchText+"\\b", "i")) != null;
}

更新,如前所述,您应该转义输入,我正在使用中的转义功能。

类似的功能将起作用:

if(/\show\s/i.test(searchOnstring)){
    alert("Found how");
}

jQuery就是JavaScript!(你想要的是不要使用它。)如果它是
Howl
,该怎么办?我不想包括jquery库停止发布indexOf()答案@达菲莫,我听到的最后一个说类似的话已经消失了7年了…:(不符合
就是这样。
string不,他指的是字符串
“就是这样。”
(或
“你好吗?”
)公平地说,我对提供的字符串进行了测试,这是对我这一半的疏忽。@faino:如果您提供的解决方案仅适用于预定义的输入,您可以将其替换为
return true;
这是一个仅链接的答案,这是不鼓励的。如果链接断开怎么办?您的答案将变得毫无用处。此外,我们不希望p人们在到达后不得不点击另一个链接-1@poida你应该转义
searchText
。现在它只是错了。你为什么还要检查
null
呢?你试过了吗?(因为转义而更好。-1被删除)@poida也删除了我的否决票,但你真的应该将转义替换移到一个函数中(我知道,这很有风格)。它显示的错误类似于:uncaughttypeerror:objectfunction RegExp(){[native code]}没有方法“escape”@anand4tech在调用我的代码之前,您必须包含该函数。/Thank DoorKnop。此escape函数直接取自@anand4tech。请参阅我的编辑,我现在使用了MDN中的escape函数。/dystroy:谢谢。@ComFreek,---new RegExp(regex,“I”).test(searchOnstring);---的值始终为false
if(/\show\s/i.test(searchOnstring)){
    alert("Found how");
}