Автор Тема: Регулярные выражения...  (Прочитано 3841 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Adonis

  • Завсегдатай
  • Пользователь
  • **
  • Сообщений: 72
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Регулярные выражения...
« : 09 Ноября 2001, 15:44:33 »
Помогите, плиз... Нужно проверить на правильность ввода телефонный номер, типа (ххх)ххх-х-х-хх-х, т.е. код города может быть, может и нет и количество цыфр в номере может изменяться... т.е.  надо проверить есть ли в строке символы, кроме 0-9()-. Как такое реализовать? читал доки по регулярным выражениям,-- нифига непонятно:(

Оффлайн Макс

  • vir magni ingenii
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 3534
  • +0/-0
  • 2
    • Просмотр профиля
Регулярные выражения...
« Ответ #1 : 09 Ноября 2001, 17:15:44 »
Попробуй это, вроде работает, но не знаю насколько качественно.

"/^(\\(( )?\\d{2,6}( )?\\))?( )?(\\d{2,18}(( |\\-|( \\- )))?){0,8}(\\d{1,18}){1,18}$/"
First learn computer science and all the theory. Next develop a programming style. Then forget all that and just hack. ( George Carrette )

Оффлайн Adonis

  • Завсегдатай
  • Пользователь
  • **
  • Сообщений: 72
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Регулярные выражения...
« Ответ #2 : 09 Ноября 2001, 18:06:53 »
гм, чего-то оно не хочет работать....
вот код:
if (ereg ("/^(\\(( )?\\d{2,6}( )?\\))?( )?(\\d{2,18}(( |\\-|( \\- )))?){0,8}(\\d{1,18}){1,18}$/", $telephon))
  {
    //ОК
  }
 else
  {
    //ошибка
  }

Оффлайн Britva

  • Координатор
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 1660
  • +0/-0
  • 0
    • Просмотр профиля
    • http://eugeny.com
Регулярные выражения...
« Ответ #3 : 09 Ноября 2001, 18:14:23 »
попробуй еще [0-9()-]+
примитивно :)
Евгений aka Razor,

Оффлайн Adonis

  • Завсегдатай
  • Пользователь
  • **
  • Сообщений: 72
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Регулярные выражения...
« Ответ #4 : 09 Ноября 2001, 18:19:38 »
так пропускает "левые" символы, если не в начале строки...:(

Оффлайн Макс

  • vir magni ingenii
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 3534
  • +0/-0
  • 2
    • Просмотр профиля
Регулярные выражения...
« Ответ #5 : 09 Ноября 2001, 19:12:48 »
нужно иcпользовать preg_match
if(preg_match(<мое выражение>,$phone))
{
 ...// правильный телефон
}
else
{
...// неправильный телефон
}
« Последнее редактирование: 09 Ноября 2001, 19:20:56 от Макс »
First learn computer science and all the theory. Next develop a programming style. Then forget all that and just hack. ( George Carrette )

Оффлайн Макс

  • vir magni ingenii
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 3534
  • +0/-0
  • 2
    • Просмотр профиля
Регулярные выражения...
« Ответ #6 : 09 Ноября 2001, 23:36:56 »
Цитировать
[0-9()-]+

имхо так более правильно:
if (ereg("^[0-9() -]+$",$ph))
{
...
}
First learn computer science and all the theory. Next develop a programming style. Then forget all that and just hack. ( George Carrette )

Оффлайн Adonis

  • Завсегдатай
  • Пользователь
  • **
  • Сообщений: 72
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Регулярные выражения...
« Ответ #7 : 12 Ноября 2001, 10:39:19 »
Большое тебе спасибо, Макс, действительно работает.

 

Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28