0

我在 javascript 的正则表达式中捕获组时遇到问题

我有诸如p4124, p74354,p10等字符串...我只想提取数字。

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

如果我做

str = p4124
str.match(patt)

我明白了["p4124"]

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

4

3 回答 3

2

从您的正则表达式中删除g标志,您将获得返回的正常匹配项。

g标志在此上下文中用于重复调用同一正则表达式,这不是您在此处尝试执行的操作。

于 2013-04-29T05:49:25.640 回答
1

如果模式将是相同的(摆脱所有非数字),那么您可以使用以下内容:

    var thestring = "p123";
    var thenum = thestring.replace(/^\D+/g, '');
    alert(thenum);

让我知道它是否对您有用。

于 2013-04-29T05:53:43.170 回答
0

您可以通过以下方式访问不同的捕获组:

var str = "p4124";
alert(/^p(\d+)/.exec(str));

第一:整个图案

第二:捕获组

于 2013-04-29T06:06:56.603 回答