使用JavaScript中的Regex检查数组中的项目是否在字符串中。

问题描述 投票:0回答:1

我需要一些简单的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",

我是否需要为数组中的每个值重新做一个循环?

谢谢你的帮助

javascript vue.js es6-promise
1个回答
1
投票

你实际上没有在做 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)
© www.soinside.com 2019 - 2024. All rights reserved.