Помогите, пожалуйста! На сайте есть форма обратного звонка. Валидность ввода номера телефона проверяется через preg_match. Необходимо разрешить пользователю при вводе номера использовать знаки пробела (несколько раз, потому как сейчас можно вводить всего 1 раз, а если 2 раза поставить, то выдает ошибку), круглые скобки (), тире -, плюс +. При этом, чтобы эти условия были необязательными, т.е можно вводить номер с плюсом, а можно и без него/со скобочками или без них и тп. и вот такой еще кусочек Или вообще, как написать, чтобы условия не проверялись? Пусть хоть собачек там понаставят PS: бьюсь уже 2е суток, но не получается
Вот этот кусок описывает правила. Сейчас разрешены только цифры длиной от 5 до 20. Чтобы добавить дополнительные символы в разрешенные, внесите их в квадратные скобки: [0-9-+() ] - это если очень примитивно. --- Добавлено, 4 янв 2014 --- Гуглите в сторону регулярных выражений. Лучше бы тут привели формат, который хотели бы валидировать.
Спасибо. Как раз по регулярным выражениям и гуглила, но, к сожалению, вот этим не отделаешься [0-9-+() ], там что-то более мудреное надо написать. Я изначально делала запись [0-9+ ] - можно было все что угодно писать в форме, потом перестало разрешать.. А теперь ни плюсов, ни пробелов не разрешает. Да даже пробелы вот с такой записью не проходят [0-9\s]. Исходя из написанного в этой статье Легче всего было бы написать вот так if (!preg_match("/^[0-9\s\D]{5,20}$/", $phone)), но.. не работает :(
Я подстраиваю ввод данных от клиентов под необходимый мне формат, используя javascript. Неудобно анализировать номера телефонов, которые вводят пользователи, т.к. у каждого он выглядит по-разному. Для "подстраивания" используется masked-input плагин (http://digitalbush.com/projects/masked-input-plugin/). В нем задал маску +38 (999) 999-99-99 для Украины - теперь все телефоны выглядят одинаково. А на стороне сервера я уже точно знаю в каком виде должны прийти данные и выполняю необходимую валидацию.
Я делал по этой статье, там и плюсы, и скобки, и пробелы : http://javascript.ru/forum/events/45601-i-opyat-validaciya-formy.html