我想从给定字符串中选择所有数字。我尝试使用下面的代码,但它不会返回字符串中的所有数字:
var match = /\d+/.exec("+12 (345)-678.90[]");
console.log(match.toString());
它只返回12
,而我希望它返回1234567890
。
答案 0 :(得分:5)
简单的实现将是
.png
答案 1 :(得分:2)
您需要使用global
标记,它会返回一组匹配数据,您可以使用join()
。
"+12 (345)-678.90[]".match(/\d+/g).join('');
alert("+12 (345)-678.90[]".match(/\d+/g).join(''))
答案 2 :(得分:1)
使用global flag:
"+12 (345)-678.90[]".match(/\d+/g)
答案 3 :(得分:1)
\d+
模式只会返回连续的数字,并且由于您在没有exec
选项的情况下运行g
一次,它只会在第一次出现时连续数字。
使用此:
var re = /\d+/g;
var str = '+12 (345)-678.90[]';
var res = "";
while ((m = re.exec(str)) !== null) {
res += m[0];
}
alert(res);

输出为1234567890
,因为我们将找到的数字序列附加到res
变量。