3

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

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

您如何捕获或匹配数字的每个实例并作为字符串返回?

4

3 回答 3

3

只需替换原始字符串中的所有非数字:

var s = "foo 123 bar 456";
var digits = s.replace(/\D+/g, "");
于 2013-02-15T19:59:32.977 回答
1

您可以替换所有非数字字符而不是提取digits

var str = "some string 22 with digits 2131";
str = str.replace(new RegExp("\D","g"),"");

\D与 相同[^\d]

于 2013-02-15T19:59:42.907 回答
1

其他解决方案更好,但要按照您的要求进行操作,您只需加入阵列即可。

var str = "this 1 string has 2 digits";
var result = str.match(/[0-9]+/g).join(''); // 12
于 2013-02-15T20:24:37.583 回答