Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/466.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_Substring_Word - Fatal编程技术网

Javascript:在字符串中查找单词

Javascript:在字符串中查找单词,javascript,substring,word,Javascript,Substring,Word,Javascript是否有内置函数来查看字符串中是否存在单词?我不是在寻找类似于indexOf()的东西,而是: find_word('test', 'this is a test.') -> true find_word('test', 'this is a test') -> true find_word('test', 'I am testing this out') -> false find_word('test', 'test this out please') -

Javascript是否有内置函数来查看字符串中是否存在单词?我不是在寻找类似于
indexOf()
的东西,而是:

find_word('test', 'this is a test.') -> true
find_word('test', 'this is a test') -> true
find_word('test', 'I am testing this out') -> false
find_word('test', 'test this out please') -> true
find_word('test', 'attest to that if you would') -> false

基本上,我想知道我的词是否出现,但不是作为另一个词的一部分出现。手动实现不会太难,但我想我会询问是否已经有这样的内置函数,因为它似乎会出现很多问题。

您可以使用
split
some

function findWord(word, str) {
  return str.split(' ').some(function(w){return w === word})
}
或者使用带有单词边界的正则表达式:

function findWord(word, str) {
  return RegExp('\\b'+ word +'\\b').test(str)
}

不,没有用于此的内置函数。您必须添加诸如regex或split()之类的编程,然后按空格将结果==“test”进行比较。

现代浏览器具有,它确定数组的条目中是否包含某个值,并根据需要返回
true
false

下面是一个例子:

const ShoppingList=[“牛奶”、“黄油”、“糖”];
log(`Milk${ShoppingList.includes(“Milk”)?“is”:“is not”}在购物列表中。`);
log(`Eggs${ShoppingList.includes(“Eggs”)?“is”:“is not”}在购物列表中。`)
JavaScript方法确定字符串是否包含指定字符串的字符。如果字符串包含字符,则此方法返回true,否则返回false

语法:

string.includes(searchvalue,start)
参数值:

Parameter Description searchvalue Required. The string to search for start Optional. Default 0. At which position to start the search
可能重复的@JeremyJStarcher你读过这个问题吗?事实上,是的,我看到了一个错误的地方,因为它是“测试”,因此,这就是区别。但是你的问题是“我不喜欢indexOf()的语法,我可以用什么来代替”而不是解释indexOf()不能做我想做的事情,因为。。。explanation@Mala是的。链接的答案讨论了正则表达式,虽然很简短。@JeremyJStarcher问这个问题的人问的是一个根本不同的问题,我浏览了一下答案,没有看到任何能回答上述问题的答案。如果我遗漏了什么,我向你道歉。前者不能正确处理标点符号,但后者看起来正是我所需要的。谢谢我想要使第一个工作正常,可以使用
.split(/\s*\b\s*/)
按照。我不知道.some()函数,所以也谢谢你教我:)这两个函数是不等价的
findWord('test','testteam')
将在第一种情况下返回false,在第二种情况下返回true。第一个应该在
\b
上拆分,或者第二个使用
'
。第二种方法对于大字符串来说可能要快得多。也许可以在没有拼写错误的情况下重新表述您的答案。包括一个指向该方法的链接,一个用法示例