您好,我需要为电话号码构建一个正则表达式,例如:
+79261234567
+7 926 123 45 67
89261234567
79261234567
8(926)123-45-67
9261234567
79261234567
89261234567
8-926-123-45-67
8 927 1234 234
8 927 12 12 888
8 927 12 555 12
8 927 123 8 123
我现在来到这个正则表达式:
/((8|\+7)[\- ]?)((\(?9\d{2}\)?[\- ]?)[\d\- ]{7, 10})?[\d\-]{10,10}/g
link to regexper.com
但它不能正常工作。所以任何帮助将不胜感激
你可以试试:
var input = 'phone number',
output = input.replace(/\(([^)]+)\)/, '$1').replace(/(^\+)|[- ]+/g, ''),
result = /^\d{10,11}$/.test(output);
解释:
\(([^)]+)\) - looks for digits with brackets around them to be removed
(^\+)|[- ]+ - looks for starting `+` or whitespace/dash in number to be removed
^\d{10,11}$ - checks if number has exacly 10 to 11 digits