我在javascript中使用正则表达式中的捕获组出现问题
我有p4124
,p74354
,p10
等字符串......我只想提取数字。
我的正则表达式是/^p(\d+)/g
如果我这样做
str = p4124
str.match(patt)
我得到["p4124"]
如何获得捕获的匹配(返回4124)?
答案 0 :(得分:2)
从你的正则表达式中删除g
标志,你会得到正常的匹配。
g
标志在此上下文中用于对同一个正则表达式的重复调用,这不是您在此处尝试执行的操作。
答案 1 :(得分:1)
如果模式相同(去掉所有非数字),那么你可以使用以下内容:
var thestring = "p123";
var thenum = thestring.replace(/^\D+/g, '');
alert(thenum);
让我知道它是否适合你。
答案 2 :(得分:0)
您可以使用以下权限访问不同的捕获组:
var str = "p4124";
alert(/^p(\d+)/.exec(str));
首先:整个模式
第二:捕获组