我在 javascript 的正则表达式中捕获组时遇到问题
我有诸如p4124
, p74354
,p10
等字符串...我只想提取数字。
我的正则表达式是/^p(\d+)/g
如果我做
str = p4124
str.match(patt)
我明白了["p4124"]
如何获取捕获的匹配项(返回 4124)?
我在 javascript 的正则表达式中捕获组时遇到问题
我有诸如p4124
, p74354
,p10
等字符串...我只想提取数字。
我的正则表达式是/^p(\d+)/g
如果我做
str = p4124
str.match(patt)
我明白了["p4124"]
如何获取捕获的匹配项(返回 4124)?
从您的正则表达式中删除g
标志,您将获得返回的正常匹配项。
该g
标志在此上下文中用于重复调用同一正则表达式,这不是您在此处尝试执行的操作。
如果模式将是相同的(摆脱所有非数字),那么您可以使用以下内容:
var thestring = "p123";
var thenum = thestring.replace(/^\D+/g, '');
alert(thenum);
让我知道它是否对您有用。
您可以通过以下方式访问不同的捕获组:
var str = "p4124";
alert(/^p(\d+)/.exec(str));
第一:整个图案
第二:捕获组