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);