我正在尝试捕获输入字符串的所有数字。该字符串还可以包含其他字符,如字母,因此我不能简单地执行[0-9]+
。
我尝试了/[0-9]/g
,但这会将所有数字作为数组返回。
如何捕获或匹配数字的每个实例并以字符串形式返回?
答案 0 :(得分:3)
只需替换原始字符串中的所有非数字:
var s = "foo 123 bar 456";
var digits = s.replace(/\D+/g, "");
答案 1 :(得分:1)
您可以替换所有非数字字符,而不是解压缩digits
:
var str = "some string 22 with digits 2131";
str = str.replace(new RegExp("\D","g"),"");
\D
与[^\d]
相同。
答案 2 :(得分:1)
其他解决方案更好,但要按照您的要求进行,您只需要加入数组。
var str = "this 1 string has 2 digits";
var result = str.match(/[0-9]+/g).join(''); // 12