Javascript JS Regex通过“key”获取路径名“value”

Javascript JS Regex通过“key”获取路径名“value”,javascript,regex,Javascript,Regex,我试图在“key”路径名之后获取一个pathname元素,例如,如果我的路径包含“/color/red”,那么我希望能够搜索“color”,然后获取“red” 我正在尝试从“开始”路径名获取“31”。 我试过: var url = 'http://myapp/html/live/index/start/31/sort/start_date' if(/\/start\/([0-9]+)\//.test(url)) { alert(RegExp.$1); } 您的正则表达式是

我试图在“key”路径名之后获取一个pathname元素,例如,如果我的路径包含“/color/red”,那么我希望能够搜索“color”,然后获取“red”

我正在尝试从“开始”路径名获取“31”。 我试过:

var url = 'http://myapp/html/live/index/start/31/sort/start_date'
if(/\/start\/([0-9]+)\//.test(url)) {
    alert(RegExp.$1);       
}
您的正则表达式是正确的,但reged.test只返回布尔值true/false。您需要使用regex.exec获取匹配数组返回:

if (m = /\/start\/([0-9]+)\//.exec(url)) {
   console.log(m[1]); // 31
}
如果要将start作为动态字符串传递,请使用RegExp对象:


怎么了?据了解,它的工作原理与预期相符。。。我不理解您的问题。如果该值可以是其他值,请将[0-9]+替换为\w+,后者将捕获字母数字字符和\u,您不应该在RegExp上使用test和全局捕获。相反,使用match或exec方法。示例无效小提琴:@Kiksy You Example不起作用,因为您试图捕获一个大写字母后跟数字/\/sort\/[A-Z][0-9]+\//正确的一个将是/\/sort\/[A-zA-Z0-9]+\//并没有回答他想要参数化起始部分的问题。@anubhava更新了您的排序示例,但无法使其工作:是的,这与我在第二个示例中的相同,但您将键的定义扩展为单词字符,而不仅仅是数字。顺便说一句,它可以简化为:var re=RegExp/+key+/\\w+/?;
var key = "start";
var re = RegExp("/" + key + "/([0-9]+)/");

if (m = re.exec(url)) {
   console.log(m[1]); // 31
}