我需要一些简单的javascript代码,用于Vue应用程序,将一个字符串分割成一个数组,并检查是否有任何值在不同的字符串中。
我有
let AffiliationString = " This person goes to Stony Brook"
let affiliation = "Stony Brook OR Stony Brook University OR The University of Washington"
let affiliations = affiliation.toLowerCase().split(" or ");
affiliation = affiliations.join(",");
let regexList = [ affiliation ];
let isMatch = regexList.some(rx => rx.test(AffiliationString));
我想看看数组中是否有任何项目属于 "AffiliationString "字符串。
当我这样做时,我得到以下错误
Uncaught (in promise) TypeError: rx.test is not a function
我在StackOverflow上看到了很多检查数组是否有值的例子,但不是反过来。 javascript - 匹配正则表达式和项目数组。
我在一个Vue项目中做这个项目,用的是
"eslint": "6.7.2",
我是否需要为数组中的每个值重新做一个循环?
谢谢你的帮助
你实际上没有在做 RegExp
的出你 affiliation
弦,这就是为什么 rx.test
不是一个函数。你可以做一个 RegExp
它将同时与所有的隶属关系字符串匹配,通过用 |
. 我们将regex中的每个元素用 \b
以致于 Brook
不符合 Brooktown
. 增加 i
旗帜指向 RegExp
使其不区分大小写。
let AffiliationString = " This person goes to Stony Brook"
let affiliation = "Stony Brook OR Stony Brook University OR The University of Washington"
let regex = new RegExp('\\b' + affiliation.split(/\s+or\s+/i).join('\\b|\\b') + '\\b', 'i')
let isMatch = regex.test(AffiliationString)
console.log(isMatch)