正则表达式:捕获字符串中的所有数字,并作为新的数字字符串返回

时间:2013-02-15 19:52:07

标签: javascript regex

我正在尝试捕获输入字符串的所有数字。该字符串还可以包含其他字符,如字母,因此我不能简单地执行[0-9]+

我尝试了/[0-9]/g,但这会将所有数字作为数组返回。

如何捕获或匹配数字的每个实例并以字符串形式返回?

3 个答案:

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