2017-10-11 166 views
0

我有一个这样的字符串:正则表达式获取字符串中的所有号码?

AAAA 1 BBBB 2 

我想所有的号码,并返回结果:12

我试图\d但它只是获得第一个数字。

总之,我想从一个字符串中获取所有数字,然后将它合并为一个新数字。

+1

使用此'变种结果=“AAAA 1 BBBB 2'.match(/ \ d + /克);' –

+0

返回一个 “阵列”,@JaromandaX是后@HassanImam –

+0

该OP具有使用'加入('')' –

回答

4

可以使用/\d+/g提取从你的字符串中的所有号码,然后加入的结果,让您的新号码。

var result = 'AAAA 1 BBBB 2'.match(/\d+/g); 
 
console.log(result.join(''));

2

我认为你的问题可以通过只从字符串中删除所有非数字组成来满足。然后,你将留下所有的数字夹在中间。

var input = 'AAAA 1 BBBB 2'; 
 
input = input.replace(/[^0-9]/g, ''); 
 
console.log(input);

+0

这是一个很好的方法来做到这一点!大! –

+1

'[^ 0-9]'=='\ D'不是吗?我会使用'.replace(/ \ D +/g,'')'代替:p –

0

您可以使用括号进行分组(\ d),直到没有匹配的新闻执行它多次。

const regex = /(\d)/g, 
    str = 'AAAA 1 BBBB 2' 

let match 
while(match = regex.exec(str)) { 
    console.log(match[0]) 
} 

结果

1 
2 
1

只是检查这个代码,我希望这将满足您的条件。

<script> 
function myFunction() { 
    var str = "AAAA 1 BBBB 2 CCCCC 6 asghj6adcgf 7"; 
    var patt1 = /\d+/g; 
    var result = str.match(patt1); 
    document.getElementById("demo").innerHTML = result; 
} 
</script> 
相关问题