此问题已在此处有答案:
Backslashes - Regular Expression - Javascript(2个答案)
11天前关闭
我有一个简单的正则表达式来匹配当前导航器url的各个部分。
它应该找到URL的一些特定部分,这些部分将采用以下格式:https://localhost:9443/client/#chart/680
或https://localhost:9443/client/#chart/680/123
当我在RegEx 101上测试它时,它工作正常
https://regex101.com/r/ByBgMO/1
但是,当它实现时,它返回null
的匹配,为什么?
下面是代码:
// pull out the sections [https://...../ | #chart/123 | [/123]]
const urlRegEx = new RegExp("^(.+\/)(#chart\/\d+)(\/\d+)?", "ig");
const url = document.location.href.split("^")[0];
// url = https://localhost:9443/client/#chart/680
const matches = urlRegEx.exec(url);
// matches = null
console.log("Chart.loadChartConfig().urlMatches: ", { url: url, matches: matches });
供参考:document.location.href.split("^")[0]
是因为url * 可能 * 有只用于显示的部分,这些部分由^
预先定义-我不关心这些。
编辑:这个问题已经被标记为已经回答,我想它已经-但我不知道这个问题是相同的,所以离开它的地方。
1条答案
按热度按时间qacovj5a1#
\
在JavaScript字符串中有特殊的含义,所以你需要转义那些字面上的意思: