我正在尝试在 JavaScript 中构建一些 RegEx,以重新制作通过 document.URL
获取的 URL。在搜索过程中,我偶然发现了 var match = str.match(/([^;]*;){2}/)[0];
,它构建了一个字符串,直到第二次出现 ;
并且我需要它建立直到第 N 次出现 /
。
虽然这只需要进行一些更改,但我还想将一个 JavaScript 变量传递给它,而不是让它成为静态变量。当我对 JS RegEx 进行更多研究并发布适合我的解决方案时,我会更新我的答案。
最佳答案
您也可以使用这样的代码片段(我修改了您的正则表达式以使用非捕获组,现在我们不需要使用索引):
var n = 5;
var re = new RegExp("(?:[^/]*/){" + n + "}");
var result = "Path/more/paths/here/andhere/file.php".match(re);
console.log(result);
注意:在 RegExp
构造函数中定义正则表达式模式时,不需要转义 /
符号。
关于javascript - 正则表达式构建字符串直到遇到第 N 个匹配项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29369626/