Отлов мобильного
Всем привет! Ребята, подскажите пожалуйста, не могу допилить регулярку. Надо искать мобильные телефоны. Сделал так.
/(\+7|8)(\d{10})/ Эта регулярка выбирает только такие: +79028380801; 9028380801 (вот тут номер без восьмерки, а надо как то сделать 8-ку), и чтобы из таких 8-(922)-24-42-700, сделался такой 89222442700, тире тоже хотелось бы сразу все леквидировать. В общем чтобы номера были однообразные 8919 и т.д. либо + 7919 и т.д., чтобы не было ни скобок ни тире. Надеюсь понятно изложил)) Спасибо заранее всем! |
<html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html; charset=utf-8" /> <title>Спойлеры</title> <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.0/jquery.min.js"></script> <style> *{ margin:0; padding:0; outline: 0; } input:hover { outline: none; } input{ margin-left: 50px; margin-top: 10px; } input[type="text"]:first-child{ margin-bottom: 10px; } input[type="button"] { display: block; width: 150px; height:30px; margin-bottom: 10px; } </style> </head> <body> <input name="telnumber" type="text"> <input name="telbutton" type="button" value='Нажми меня'> <input name="telnumberresult" type="text"> <script> var button = document.getElementsByName("telbutton")[0]; button.onclick = function(){ var telNumber = document.getElementsByName("telnumber")[0].value; var telNumberResultElem = document.getElementsByName("telnumberresult")[0]; var number=telNumber.replace(/\D/gm,''); if (number.length>11 || number.length<10) alert('Вы неправильно ввели моб. телефон'); else if((number[0]!=='8' && number[0]!=='7')&&(number.length=='11')) alert('Вы неправильно ввели моб. телефон'); else telNumberResultElem.value = number; } </script> </body> </html> |
Спасибо, но вот правда у меня куча телефонов через точку с запятой, выглядит так:
+7(919)7076922;89504412323;+791543435454 как их тоже обработать? |
Цитата:
|
alert( "+71233332433434434344;87474883839399;8(757) 94-994949-4994;8-0505-99595-5885858" .replace(/\+7/g, "8") .replace(/\(|\)|-|\s+/g, "") ) прогони даные по этой фигне, а потом сматчишь обычной. Если сразу матчить, будет зело сложная конструкция, что-то типа /(+7|8|)?\(?(\d-?){3}\)?(\d-?){7... ненадежно это все, да и лень мне цифры считать для образца:). Если запостишь кусок из базы с верными и неверыми случаями, полный комплект(и пометь как-нибудь верные и неверные), может напишу. |
ох, ну ладно! Спасибо всем на этом.
|
Часовой пояс GMT +3, время: 10:05. |