【发布时间】:2020-02-27 08:31:20
【问题描述】:
我正在尝试匹配 Javascript 中的几种 URL 模式中的任何一种。模式是:
- 首页 -
/后面没有任何内容。 - 三个解决方案页面之一。每个
solutions(number)后面可以跟一个/和后面的任何字符。-
/solutions/99043或/solutions/99043/blah -
/solutions/60009或/solutions/60009/blah -
/solutions/40117或/solutions/40117/blah
-
- 搜索:
/search后跟任何字符,例如?blah。
我试过的RegEx如下:
/\/$|\/solutions\/(99043|60009|40117)\/.*|\/search.*/
在这个函数中:
(function () {
const urlPath = window.location.pathname;
if (urlPath.match(/\/$|\/solutions\/(99043|60009|40117)\/.*|\/search.*/)) {
console.log("urlPath", urlPath);
}
})()
它不起作用,因为一切似乎都匹配。有人知道我哪里出错了吗?
根据评论,一个匹配但不应该匹配的 URL 示例:
/solutions/
【问题讨论】:
-
您能否提供一些存在意外行为的测试用例?
-
@Bazza 我已经用一个例子更新了这个问题。
标签: javascript regex url