无法在javascript正则表达式中捕获匹配项

时间:2013-04-29 05:48:03

标签: javascript regex

我在javascript中使用正则表达式中的捕获组出现问题

我有p4124p74354p10等字符串......我只想提取数字。

我的正则表达式是/^p(\d+)/g

如果我这样做

str = p4124
str.match(patt)

我得到["p4124"]

如何获得捕获的匹配(返回4124)?

3 个答案:

答案 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));

首先:整个模式

第二:捕获组