我尝试使用正则表达式将资源ID提取到变量中。
到目前为止,我设法匹配字符串,但我对如何将数字提取到单独的值感到困惑。
"/posts/23/edit".match(/\/posts\/(\d*)\/edit/g)
// => ["/posts/23/edit"]
答案 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"]