Javascript 如何使用正则表达式实现以下结果?

Javascript 如何使用正则表达式实现以下结果?,javascript,node.js,regex,Javascript,Node.js,Regex,我想使用以下正则表达式提取电话号码,如下所示: /(?:(\+?\d{1,3}) )?(?:([\(]?\d+[\)]?)[ -])?(\d{1,5}[\- ]?\d{1,5})/ 使用这些测试用例: "my number is 2435 6546 56756765" "my complete number is 55 40 60 5585" 我得到: 243565465756 但是,我需要以下数字: 2435654656756765 5540605585 所以我想感谢大家的支持 因为您

我想使用以下正则表达式提取电话号码,如下所示:

/(?:(\+?\d{1,3}) )?(?:([\(]?\d+[\)]?)[ -])?(\d{1,5}[\- ]?\d{1,5})/
使用这些测试用例:

"my number is 2435 6546 56756765" 
"my complete number is 55 40 60 5585"
我得到:

243565465756

但是,我需要以下数字:

2435654656756765
5540605585

所以我想感谢大家的支持

因为您在正则表达式中使用空格,所以当您使用
str.replace(/\s/g')得到结果时,应该删除它们

您也可以直接替换所有非数字

const str=“我的号码是2435 6546 56756765”;
const num=str.replace(/\D/g,“”);

console.log(num)有很多方法可以做到这一点。这里有一个老派的循环——和一个不同的、效率较低的书面表达

var strs=[“我的号码是24356546556756765”,
“我的完整号码是55 40 60 5585”]
for(设i=0;i}
给定正则表达式的结构似乎与给定的示例不太匹配。数字之间用空格隔开,至少包含2个数字,重复2-3次

您可能要做的是匹配该模式并删除后面的空白字符

const regex=/\d{2,}(?:\d{2,}){2,3}/g;
[
“我的号码是24356546556756765”,
“我的完整号码是55 40 60 5585”
].forEach(s=>console.log(s.match(regex)[0]。替换(/\s+/g'))

它将替换非数字字母和空格字符

字母呢?在他的代码中,他得到了“2435 6546 56756”,所以我认为删除空格就可以了。他发布了预期的输出:2435654656756765 5540605585如果他想在他的案例中得到2个匹配,他应该放上regex全局标志。不,它们是唯一字符串,必须作为修改后的唯一字符串返回。这是通过将字符串包装在数组中并对其进行迭代来实现的。需要/g标志,以便不仅匹配和替换模式的第一个实例。
const str = "my number is 2435 6546 56756765"; 
const num = str.replace(/[\D\s]*/g, ""); console.log(num);