javascript - 正则表达式构建字符串直到遇到第 N 个匹配项

标签 javascript regex

我正在尝试在 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/

相关文章:

javascript - 使用 instafeed.js - 空白页面,不起作用

regex - 在 Mechanize 函数中使用哪个正则表达式标签?

javascript - 需要将稳定的 HTML 和 CSS 添加到 jquery "ContentFlow"

javascript - Laravel - Bootstrap 数据表 (yajra) 中的单选按钮

mysql - 检查列是否以非整数开头

java scanner hasnext(pattern) 与空格冲突

Java RegEx 检查行的第 8 个字符是否为 A

javascript - 在第二次出现字符后拆分字符串

javascript - 为什么这个 react 引导模式没有正确响应?

javascript - 从 firefox 扩展打开新窗口被拒绝访问