如何仅使用正则表达式提取匹配字符串的一部分?

时间:2018-01-11 15:44:31

标签: javascript regex

'https://twitter.com/pixelhenk/status/891303699204714496'.match(/\/status\/(\d+)/g)

给了我

[ "/status/891303699204714496" ]

我如何获得这个号码?我认为把它放在括号中做了这个,但显然不是。

1 个答案:

答案 0 :(得分:5)

是的,捕获组会这样做。您没有在数组中看到它,因为您已使用String#matchg标记。删除g标志(并从数组中获取第二个条目,这是第一个捕获组):



console.log('https://twitter.com/pixelhenk/status/891303699204714496'.match(/\/status\/(\d+)/)[1]);




...或使用RegExp#exec代替String#match



console.log(/\/status\/(\d+)/g.exec('https://twitter.com/pixelhenk/status/891303699204714496')[1]);