Започвам тази тема и се надявам всеки, който има добър пример с регулярни изрази да го сподели за удобство на другите.Ще дам два примера за валидация, които съм си ги правил аз според моите разбирания за валидност.За валидност на пароли и потребитлески имена няма да дам, защото там нещата са мн индивидуални и всеки може да ги валидира според свои си правила.Първия пример е за валидация на имейл.
$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
Ако искате и такива странни имейли като този на лицевата да бъдат валидни то трябва да се направят малки промени в горния израз:
$pattern='/^[a-z]+([._+-]*[a-z\d])*@[a-z\d]+([-.]?[a-z\d])*\.[a-z]{2,4}$/i';
Следващия пример е за валидация на имена(име,презиме,фамилия като последните две не са задължителни):
$pattern='/^([a-z]{3,12} ){0,2}[a-z]{3,12}$/i';
Тук правилото е такова:имената трябва да съдържат само букви най-малко 3 символа и най-много 12 като имената могат да бъдат максимум 3(име,презиме,фамилия) и минимум 1 като след първото има интревал(space клавиша) ако има второ и след второто ако има трето.Както горния пример може мн лесно да се направят промени както за броя символи така и за броя думи.Също след като говорим за имена могат да бъдат на всякакви езици,така че може да се използва следното:
$pattern='/^([\p{L}]{3,12} ){0,2}[\p{L}]{3,12}$/u';
Разбира се може да се сложат и още допустими символи по ваша преценка.
Използвайте
preg_match в php.
Това е засега от мен.