[英]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.