我想与下面的正则表达式如下来提取电话号码:
/(?:(\+?\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
因此,我想感谢您的支持。
答案 0 :(得分:4)
您也可以直接替换所有非数字
const str = "my number is 2435 6546 56756765";
const num = str.replace(/\D/g, "");
console.log(num);
答案 1 :(得分:2)
由于您要在正则表达式中使用空格,因此在使用str.replace(/\s/g, '');
获得结果时应删除它们。
答案 2 :(得分:1)
许多方法可以做到这一点。这是一个古老的循环-和一个不同的,效率较低的书面表达方式。
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(/([a-z]{1,})?(\s)/g, ""))
}
答案 3 :(得分:1)
给定正则表达式的结构似乎与给定示例不太吻合。这些数字用空格隔开,至少包含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, '')))
答案 4 :(得分:0)
const str = "my number is 2435 6546 56756765";
const num = str.replace(/[\D\s]*/g, ""); console.log(num);
它将替换非数字字母和空格字符。