我想要正则表达式,通过忽略空格,加上(+),括号和破折号,找出最多12位长数字,例如:
Primary contact number +91 98333332343 call me on this
My number is +91-983 333 32343
2nd number +1 (983) 333 32343, call me
Another one 983-333-32343
One more +91(983)-333-32343 that's all
121 street pin code 421 728 & number is 9833636363
Run Code Online (Sandbox Code Playgroud)
目前,我有一个正则表达式,它负责从字符串中获取联系人号码:
/* This only work for the first case not for any other
and for last one it outputs "121" */
\\+?\\(?\\d*\\)? ?\\(?\\d+\\)?\\d*([\\s./-]?\\d{2,})+
Run Code Online (Sandbox Code Playgroud)
那么在这里可以做些什么来支持所有上述情况,简而言之,忽略特殊字符和长度应该在10-12之间.
我看到有10到13位数字.
你可以用
/(?:[-+() ]*\d){10,13}/g
Run Code Online (Sandbox Code Playgroud)
请参阅正则表达式演示.
细节:
(?:[-+() ]*\d){10,13} - 匹配10到13个序列:
[-+() ]*-零个或多个字符或者是-,+,(,),或的空间\d - 一个数字var re = /(?:[-+() ]*\d){10,13}/gm;
var str = 'Primary contact number +91 98333332343 call me on this\nMy number is +91-983 333 32343\n2nd number +1 (983) 333 32343, call me\nAnother one 983-333-32343\nOne more +91(983)-333-32343 that\'s all\n121 street pin code 421 728 & number is 9833636363';
var res = str.match(re).map(function(s){return s.trim();});
console.log(res);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
329 次 |
| 最近记录: |