【发布时间】:2021-08-26 06:49:34
【问题描述】:
我正在使用下面的 JavaScript 代码通过测试方法检查给定的 REGEX 是否与字符串匹配。
const str = 'AUGUST PRODUCT UPDATES AND NEWSLETTER';
const regex = new RegExp('.*INAWS.*|.*INAWS P4.*|.*INAWSP4.*|.*P4 INAWS.*|.*P4INAWS.*|.*INAWS P3.*|.*INAWSP3.*|.*P3 INAWS.*|.*P3INAWS.*|.*INAWS P2.*|.*INAWSP2.*|.*P2 INAWS.*|.*P2INAWS.*|.*INAWS P1.*|.*INAWSP1.*|.*P1 INAWS.*|.*P1INAWS.*|.*INSAP.*|.*INSAP P4.*|.*INSAPP4.*|.*P4 INSAP.*|.*P4INSAP.*|.*INSAP P3.*|.*INSAPP3.*|.*P3 INSAP.*|.*P3INSAP.*|.*INSAP P2.*|.*INSAPP2.*|.*P2 INSAP.*|.*P2INSAP.*|.*INSAP P1.*|.*INSAPP1.*|.*P1 INSAP.*|.*P1INSAP.*|.*INFW.*|.*INFW P4.*|.*INFWP4.*|.*P4 INFW.*|.*P4INFW.*|.*INFW P3.*|.*INFWP3.*|.*P3 INFW.*|.*P3INFW.*|.*INFW P2.*|.*INFWP2.*|.*P2 INFW.*|.*P2INFW.*|.*.*|.*INFW P1.*|.*INFWP1.*|.*P1 INFW.*|.*P1INFW.*|.*INSEC.*|.*INSEC P4.*|.*INSECP4.*|.*P4 INSEC.*|.*P4INSEC.*|.*INSEC P3.*|.*INSECP3.*|.*P3 INSEC.*|.*P3INSEC.*|.*INSEC P2.*|.*INSECP2.*|.*P2 INSEC.*|.*P2INSEC.*|.*INSEC P1.*|.*INSECP1.*|.*P1 INSEC.*|.*P1INSEC.*');
console.log(regex.test(str));
以上代码返回true,
但我不知道哪个 REGEX 关键字与上面给定的字符串匹配。我希望没有一个关键字与给定的字符串匹配,但不知道为什么它返回true。
谁能帮我找出匹配的正则表达式,或者我误解了任何错误,因为我是 Javascript 新手?
【问题讨论】:
-
您可能需要分别检查每个模式,例如在一个大的 if-else 中。
-
匹配的是
.*.* -
只需将每个单一模式放入一个数组中,然后循环通过它找出匹配的。
-
嗨@Bravo 非常感谢。我通过将 REGEX 分为 4 部分开始调试。 findout 匹配 REGEX 在第 3rdrow 但不是确切的关键字,在看到您的评论后,我可以知道。
标签: javascript regex string