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

sta*_*ers 0 javascript regex

'https://twitter.com/pixelhenk/status/891303699204714496'.match(/\/status\/(\d+)/g)
Run Code Online (Sandbox Code Playgroud)

给我

[ "/status/891303699204714496" ]
Run Code Online (Sandbox Code Playgroud)

我如何得到这个数字?我想把它放在括号中做了这个,但显然没有.

T.J*_*der 5

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

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

...或使用RegExp#exec而不是String#match.

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