Javascript 比较字符串和数组的快速方法
我有一个有很多名字的数组:Javascript 比较字符串和数组的快速方法,javascript,typescript,Javascript,Typescript,我有一个有很多名字的数组:{'johndoe','petershark',…} 现在,我想比较并匹配一个字符串,例如,“该轮到你了,John Doe,请执行”,如果数组包含该字符串,则返回名称。 字符串可以是长文本 我试过这样做,但不起作用: var searchStr = "This is your turn John Doe, pls do it" var stringArray = ["John Doe", "Peter Shark"]; return (stringArray.ind
{'johndoe','petershark',…}
现在,我想比较并匹配一个字符串,例如,“该轮到你了,John Doe,请执行”
,如果数组包含该字符串,则返回名称。
字符串可以是长文本
我试过这样做,但不起作用:
var searchStr = "This is your turn John Doe, pls do it"
var stringArray = ["John Doe", "Peter Shark"];
return (stringArray.indexOf(searchStr) > -1)
您需要以另一种方式进行搜索-迭代
stringArray
,并检查中是否包含部分
名称searchStr
:
var searchStr1=“该你了,约翰·多伊,请动手”;
var stringArray=[“John Doe”、“Peter Shark”];
log(stringArray.some(name=>searchStr1.includes(name));
var searchStr2=“这是轮到你的Foo栏,请点击”;
log(stringArray.some(name=>searchStr2.includes(name))代码>正则表达式非常擅长快速查找内容。如果stringArray
保持不变,您可以提前准备regexp,然后稍后重新使用它:
let searchStr=“该你了,约翰·多伊,请你做”
让stringArray=[“John Doe”,“Peter Shark”];
让nameMatcher=newregexp(stringArray.map(
// https://stackoverflow.com/questions/3561493/is-there-a-regexp-escape-function-in-javascript
s=>s.replace(/[-\/\^$*+?.()|[\]{}]/g,“\\$&”)
).加入(“|”);
log(searchStr.match(nameMatcher))代码>