通过正则表达式提取子字符串

时间:2016-08-28 18:33:16

标签: javascript

我尝试使用正则表达式将资源ID提取到变量中。

到目前为止,我设法匹配字符串,但我对如何将数字提取到单独的值感到困惑。

"/posts/23/edit".match(/\/posts\/(\d*)\/edit/g)
// => ["/posts/23/edit"]

2 个答案:

答案 0 :(得分:2)

那是因为你使用了g(全局)标志,这使match忽略了捕获组。

如果您只对第一场比赛感兴趣,请删除该标志。



console.log("/posts/23/edit".match(/\/posts\/(\d*)\/edit/));
// [ "/posts/23/edit", "23" ]




否则你应该保留标志并在循环内重复调用exec



var match, rg = /posts\/(\d*)\/edit/g;
while(match = rg.exec("/posts/23/edit -- /posts/24/edit")) {
  console.log(match);
}




答案 1 :(得分:1)

/\/posts\/(\d*)\/edit/g.exec("/posts/23/edit")
// => ["/posts/23/edit", "23"]