Forum Webscript.Ru

Программирование => PHP => Тема начата: Adonis от 09 Ноября 2001, 15:44:33

Название: Регулярные выражения...
Отправлено: Adonis от 09 Ноября 2001, 15:44:33
Помогите, плиз... Нужно проверить на правильность ввода телефонный номер, типа (ххх)ххх-х-х-хх-х, т.е. код города может быть, может и нет и количество цыфр в номере может изменяться... т.е.  надо проверить есть ли в строке символы, кроме 0-9()-. Как такое реализовать? читал доки по регулярным выражениям,-- нифига непонятно:(
Название: Регулярные выражения...
Отправлено: Макс от 09 Ноября 2001, 17:15:44
Попробуй это, вроде работает, но не знаю насколько качественно.

"/^(\\(( )?\\d{2,6}( )?\\))?( )?(\\d{2,18}(( |\\-|( \\- )))?){0,8}(\\d{1,18}){1,18}$/"
Название: Регулярные выражения...
Отправлено: Adonis от 09 Ноября 2001, 18:06:53
гм, чего-то оно не хочет работать....
вот код:
if (ereg ("/^(\\(( )?\\d{2,6}( )?\\))?( )?(\\d{2,18}(( |\\-|( \\- )))?){0,8}(\\d{1,18}){1,18}$/", $telephon))
  {
    //ОК
  }
 else
  {
    //ошибка
  }
Название: Регулярные выражения...
Отправлено: Britva от 09 Ноября 2001, 18:14:23
попробуй еще [0-9()-]+
примитивно :)
Название: Регулярные выражения...
Отправлено: Adonis от 09 Ноября 2001, 18:19:38
так пропускает "левые" символы, если не в начале строки...:(
Название: Регулярные выражения...
Отправлено: Макс от 09 Ноября 2001, 19:12:48
нужно иcпользовать preg_match
if(preg_match(<мое выражение>,$phone))
{
 ...// правильный телефон
}
else
{
...// неправильный телефон
}
Название: Регулярные выражения...
Отправлено: Макс от 09 Ноября 2001, 23:36:56
Цитировать
[0-9()-]+

имхо так более правильно:
if (ereg("^[0-9() -]+$",$ph))
{
...
}
Название: Регулярные выражения...
Отправлено: Adonis от 12 Ноября 2001, 10:39:19
Большое тебе спасибо, Макс, действительно работает.