если не сложно подскажите как поправить регулярное выражение для проверки правильности ввода телефона в 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 нет!
не могу понять чего не хватает.
спасибо
но для начала разобраться пока с такой задачей.
строка работает, только для приведенных вариантов
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>