2017-10-11 167 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> 
相關問題