仅在JavaScript字符串中选择数字

时间:2015-05-27 11:53:39

标签: javascript jquery regex

我想从给定字符串中选择所有数字。我尝试使用下面的代码,但它不会返回字符串中的所有数字:

var match = /\d+/.exec("+12 (345)-678.90[]");
console.log(match.toString());

它只返回12,而我希望它返回1234567890

4 个答案:

答案 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变量。