簡體   English   中英

如何使用正則表達式獲得以下結果?

[英]How to achieve the following result using regular expressions?

我想使用以下正則表達式提取電話號碼,如下所示:

/(?:(\+?\d{1,3}) )?(?:([\(]?\d+[\)]?)[ -])?(\d{1,5}[\- ]?\d{1,5})/

使用這些測試用例:

"my number is 2435 6546 56756765" 
"my complete number is 55 40 60 5585"

我有:

2435 6546 56756

但是我需要數字,如下所示:

2435654656756765
5540605585

因此,我要感謝您的支持。

您也可以直接替換所有非數字

  const str = "my number is 2435 6546 56756765"; const num = str.replace(/\\D/g, ""); console.log(num); 

由於您在正則表達式中使用空格,因此在使用str.replace(/\\s/g, '');獲得結果時應刪除它們str.replace(/\\s/g, '');

有很多方法可以做到這一點。 這是一個古老的循環-和一個不同的,效率較低的書面表達方式。

 var strs =["my number is 2435 6546 56756765", "my complete number is 55 40 60 5585"] for(let i = 0; i < strs.length; i++){ console.log(strs[i].replace(/([az]{1,})?(\\s)/g, "")) } 

給定正則表達式的結構似乎與給定示例不太吻合。 這些數字用空格隔開,至少包含2個數字,並重復2-3次。

您可能要做的就是匹配該模式,然后刪除空格字符。

 const regex = /\\d{2,}(?: \\d{2,}){2,3}/g; [ "my number is 2435 6546 56756765", "my complete number is 55 40 60 5585" ].forEach(s => console.log(s.match(regex)[0].replace(/\\s+/g, ''))) 

const str = "my number is 2435 6546 56756765"; 
const num = str.replace(/[\D\s]*/g, ""); console.log(num);

它將替換非數字字母和空格字符。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM