regex.match返回正则表达式以及结果?
|
我正在编写一些可捕获用户ID的JavaScript。它可以工作,但是问题是结果中包含了实际的正则表达式。
我的代码:
var regex = /profile\\.php\\?id=(\\d*)/g;
var matches = source.match(regex);
它返回:
profile.php?id=1111,1111,profile.php?id=2222,2222,profile.php?id=33333,33333,
我想要的只是用户ID。难道我做错了什么?
没有找到相关结果
已邀请:
3 个回复
坛沤疲撑拆
您应该阅读正则表达式中的捕获组,以了解其工作原理。第一组始终是完整匹配,然后每个捕获组按顺序排列。
甲车劲
方法不仅返回括号中的内容。它返回整个匹配模式 像这样做:
将是整个比赛,而
将是括号中的捕获部分。
号拳藐孔妇
每当执行regex.exec(...)时,它都会在内部将其
属性设置为最后一个匹配项的最后一个索引。因此,如果再次执行该正则表达式,它将从上次停止的地方开始提取。 很明显,我的源字符串与您的源字符串不同,但是其中包含多个\“ id = ... \”,因此具有相同的效果。