Автор Тема: Примери за регулярни изрази  (Прочетена 6227 пъти)

0 Потребители и 1 Гост преглежда(т) тази тема.

Stan

  • Hero Member
  • *****
  • Благодарности
  • -Казани: 27
  • -Получени: 135
  • Публикации: 641
Примери за регулярни изрази
« -: 18 Януари 2012, 12:27:26 »
Започвам тази тема и се надявам всеки, който има добър пример с регулярни изрази да го сподели за удобство на другите.Ще дам два примера за валидация, които съм си ги правил аз според моите разбирания за валидност.За валидност на пароли и потребитлески имена няма да дам, защото там нещата са мн индивидуални и всеки може да ги валидира според свои си правила.Първия пример е за валидация на имейл.

Код: PHP
  1.  $pattern='/^[a-z]+([._-]?[a-z\d])*@[a-z\d]+([-.]?[a-z\d])*\.[a-z]{2,4}$/i';

Тук съм казал следното:името(частта преди @) трябва да започва с буква като могат да се използват след това и числа, долна черта и тире като последните две могат само по веднъж и не може да се завършва с тях: this_is_example както и this-is-example е валидно но this___is__ex_ е невалидно.Домейна(частта след @) има подобни правила - 00webhost.com, 00webhost.co.uk , this-is.example.com и т.н са валидни, но 000webhost..com, 000webhost.commm,000webhost.c,000webhost-.c, -000webhost, .000webhost и т.н са невалидни.
Ето пример за валиден имейл: yahoo-account-services-us@cc.yahoo-inc.com
Ето пример за невалиден според мен (имейл от лицевата книга в случая) : update+kjdmui_w__hm@facebookmail.com
Ако искате и такива странни имейли като този на лицевата да бъдат валидни то трябва да се направят малки промени в горния израз:
Код: PHP
  1.  $pattern='/^[a-z]+([._+-]*[a-z\d])*@[a-z\d]+([-.]?[a-z\d])*\.[a-z]{2,4}$/i';

Следващия пример е за валидация на имена(име,презиме,фамилия като последните две не са задължителни):
Код: PHP
  1.  $pattern='/^([a-z]{3,12} ){0,2}[a-z]{3,12}$/i';

Тук правилото е такова:имената трябва да съдържат само букви най-малко 3 символа и най-много 12 като имената могат да бъдат максимум 3(име,презиме,фамилия) и минимум 1 като след първото има интревал(space клавиша) ако има второ и след второто ако има трето.Както горния пример може мн лесно да се направят промени както за броя символи така и за броя думи.Също след като говорим за имена могат да бъдат на всякакви езици,така че може да се използва следното:
Код: PHP
  1.  $pattern='/^([\p{L}]{3,12} ){0,2}[\p{L}]{3,12}$/u';

Разбира се може да се сложат и още допустими символи по ваша преценка.
Използвайте preg_match в php.
Това е засега от мен.
« Последна редакция: 30 Юни 2012, 22:44:46 от Stan »

jazzman

  • Hero Member
  • *****
  • Благодарности
  • -Казани: 25
  • -Получени: 191
  • Публикации: 3624
Re: Примери за регулярни изрази
« Отговор #1 -: 18 Януари 2012, 13:43:21 »
Виждам, че се увличаш и разбираш регулярните изрази. Направи няколко урока ( не видео ) с подробен анализ, кое какво и как се прави един регулярен израз.
Мисля, че ще бъде полезно за начинаещите а и не само  ;) 
Java is to Javascript as fun is to funeral.

http://nau4i.me/forum/index.php/topic,15129.0.html

Pitankata

  • Мно'о доблестни
  • Hero Member
  • ***
  • Благодарности
  • -Казани: 89
  • -Получени: 136
  • Публикации: 1321
  • ПАЗИТЕЛ НА ЧАТА
Re: Примери за регулярни изрази
« Отговор #2 -: 18 Януари 2012, 13:52:12 »
напълно подкрепям джази с малката разлика че аз лично предпочитам самия механизъм (за какво е кльомбата кога къдрави скоби кога нормални защо точка) да обясниш че лаиците кат мен да загреят най накрая и да почнат сами да си пишат :о)
Мързелът всъщност е доста гадна работа, не можеш да спреш за да си починеш...

Stan

  • Hero Member
  • *****
  • Благодарности
  • -Казани: 27
  • -Получени: 135
  • Публикации: 641
Re: Примери за регулярни изрази
« Отговор #3 -: 18 Януари 2012, 14:25:28 »
Виждам, че се увличаш и разбираш регулярните изрази. Направи няколко урока ( не видео ) с подробен анализ, кое какво и как се прави един регулярен израз.
Мисля, че ще бъде полезно за начинаещите а и не само  ;) 
напълно подкрепям джази с малката разлика че аз лично предпочитам самия механизъм (за какво е кльомбата кога къдрави скоби кога нормални защо точка) да обясниш че лаиците кат мен да загреят най накрая и да почнат сами да си пишат :о)

Исканията са удолетворени, уроците са налице. ;)
« Последна редакция: 20 Януари 2012, 23:14:30 от abcd »

georgirgeorgiev

  • Full Member
  • ***
  • Благодарности
  • -Казани: 77
  • -Получени: 13
  • Публикации: 164
Re: Примери за регулярни изрази
« Отговор #4 -: 25 Април 2015, 16:04:42 »
Благодаря за примерните регулярни изрази!