[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: валидность телефонного номера в javascript
skolozhabskiy
добрый день

если не сложно подскажите как поправить регулярное выражение для проверки правильности ввода телефона в javascript:

/^(()?\d{3}())?(-|\s)?\d{3}(-|\s)?\d{4}$/


не получается, чтобы валидным был такой номер:

067 570 28 28 или (067) 570 28 28

а в целом нужны такие варианты:

738 63 17
738 6317
0675702828
067 5702828
067 570 2828
(067) 570 2828
(067) 570 28 28
067 570-28-28
(067) 570-2828 и так далее

в общем варианты слитно, раздельно с пробелами, тире или первые три цифры в/без скобках

спасибо за помощь



Спустя 2 часа, 20 минут, 50 секунд (25.06.2012 - 16:18) skolozhabskiy написал(а):
может есть какие-нибудь идеи?

спасибо

Спустя 8 минут, 10 секунд (25.06.2012 - 16:26) killer8080 написал(а):
skolozhabskiy
а где гарантия что в номере не окажется код страны?

Спустя 15 минут, 24 секунды (25.06.2012 - 16:42) skolozhabskiy написал(а):
гарантии нет, тогда и код страны по примеру +38 добавить,
но для начала разобраться пока с такой задачей.

строка работает, только для приведенных вариантов
067 570 28 28 или (067) 570 28 28 нет!

не могу понять чего не хватает.

спасибо

Спустя 5 часов, 11 минут, 43 секунды (25.06.2012 - 21:53) skolozhabskiy написал(а):
выражение, приведенное мною в первом посте, работает, речь идет только о двух[ вариантах 067 570 28 28 или (067) 570 28 28. может кто-то сможет помочь поправить выражение, чтобы эти варианты тоже учитывались?

спасибо

Спустя 12 часов, 21 минута, 51 секунда (26.06.2012 - 10:15) killer8080 написал(а):
<script type="text/javascript">
function phone_num_test(n){
return /^(?:\+\d{1,3}\s?)?(?:\(?\d{2,5}\)?\s?)?\d{1,3}(\s|-)?\d{1,3}(\s|-)?\d{1,3}$/.test(n);
}

var num = [
'738 63 17', '738 6317', '0675702828', '067 5702828', '067 570 2828',
'(067) 570 2828', '(067) 570 28 28', '067 570-28-28', '(067) 570-2828',
'+380(66)123-45-66', '2234234534345435'
];


for(var i = 0, n; i < num.length; i++){
n = num[i];
document.write(n + ' - ' + (phone_num_test(n) ? 'Yes' : 'No') +'<br />');
}

</script>



Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2025 Invision Power Services, Inc.