Перейти к содержимому



Регулярные выражения

#1 Вячеслав

Вячеслав
  • Пользователь
  • 357 сообщений
  • Репутация: 0
0

Отправлено 13 Июнь 2010 - 21:06

Всем привет!
Люди кто нибуть сталкивался с банальной проблемой "проверка поля Имя" на то что юзер ввел Русское имя без всяких цыфр, точек, пробелов и прочего...

Запарелся составлять, не где ничего толкового про это не написано везде какаета муть!

Подскажите кто знает, спасибо!

 

 

  • 0

#2 surfer

surfer
  • Заблокированные
  • 1 956 сообщений
  • Репутация: 71

Отправлено 13 Июнь 2010 - 21:43

попробуй

if(preg_match("|^[а-яА-Я]+$|i", $name)){...}

  • 0

#3 gaaarfild

gaaarfild
  • Пользователь
  • 596 сообщений
  • Репутация: 0

Отправлено 14 Июнь 2010 - 18:49

if(preg_match("#[а-яА-Я]+#i", $name)){...}

По-моему так лучше.
  • 0

#4 Вячеслав

Вячеслав
    Topic Starter
  • Пользователь
  • 357 сообщений
  • Репутация: 0

Отправлено 15 Июнь 2010 - 21:02

Спасибо за предложения, не знаю прав ли я но получилось сделать это вот так:

var pattern_nonum = /([A-Za-z0-9А])/;
var pattern_nostr = /([А-яA-Za])/;

var testName = pattern_nonum.test(el.value) //проверка на то что в имени нет цифр
var testPhone = pattern_nostr.test(el.value) //проверка на то что в номере телефона нет букв

  • 0

#5 gaaarfild

gaaarfild
  • Пользователь
  • 596 сообщений
  • Репутация: 0

Отправлено 16 Июнь 2010 - 08:10

Ну если работает, то правильно. =)
  • 0

#6 Вячеслав

Вячеслав
    Topic Starter
  • Пользователь
  • 357 сообщений
  • Репутация: 0

Отправлено 16 Июнь 2010 - 11:41

))) просто не пойму каким образом получается что этот шаблон (тот что я привел) распространяетя на всю строку?
  • 0

#7 surfer

surfer
  • Заблокированные
  • 1 956 сообщений
  • Репутация: 71

Отправлено 16 Июнь 2010 - 20:03

единственный момент, что javascript обойти можно.
  • 0

#8 ZiTosS

ZiTosS
  • Пользователь
  • 5 148 сообщений
  • Репутация: 8

Отправлено 17 Июнь 2010 - 15:45

gaaarfild, раздел JS :rolleyes:

Вячеслав, что-то ты наоборот все написал...
1) твои регулярки проверяют только на один символ, а если в строке будет хотяб один русский символ, а все остальные латинские...
2) В твоём случае, совпадение ищется не от начала строки и до конца, а в любом месте.

Правильно будет так:
/^[а-я]+$/i
Вообщем, если данная регулярка выдаст истину, значит тестовое значение всё состоит из русских букв и ничего более.
Кстати, почитать можно тут:
http://javascript.ru...ular-expression
  • 0

#9 gaaarfild

gaaarfild
  • Пользователь
  • 596 сообщений
  • Репутация: 0

Отправлено 21 Июнь 2010 - 09:20

Да, кстати, по твоему первому сообщению я понял, что тебе надо, чтобы пользователи могли вводить только русские буквы и все. Разве не так?
  • 0

robot

robot
  • Пользователь PRO
  • 2 652 сообщений
  • Репутация: 85


Оформление форума – IPBSkins.ru