"ereg" функция

bganonymous

Registered
Привет! Знам какво прави функцията "ereg", но не знам как точно да я настроя. :)

Направил съм проверка за потребителско име в PHP форма и искам $username да е позволено да съдържа: само букви, цифри, тирета и долни черти. Всичко друго (кирилица, специални символи и т.н.) - забранено. Благодаря предварително! :)
 
ronaldinho_880 каза:
http://php.net//manual/bg/function.ereg.php
Ето но не е ли по-добре preg_match ?
Няма значение. Просто искам да направя това, което съм написал по-горе.
 
PHP:
if(preg_match("/^[a-z0-9\_-]{MIN, MAX}$/i", $username)) {
  //ok
}
else {
  //някво съобщение за грешка
}

MIN, MAX - това е ограничението за брой на символите.
 
anonimen каза:
bganonymous каза:
Fakeheal каза:
([A-Za-z0-9\-\_]+)
Не става. Пробвах да се регистрирам с името "asd<>" и стана... :(
Виж моя отговор. С него "asd<>" няма да мине.
А какво е това MIN и MAX. Аз съм си направил друга проверка, която да проверява за дължината на username.
 
bganonymous каза:
anonimen каза:
bganonymous каза:
Не става. Пробвах да се регистрирам с името "asd<>" и стана... :(
Виж моя отговор. С него "asd<>" няма да мине.
А какво е това MIN и MAX. Аз съм си направил друга проверка, която да проверява за дължината на username.
Можеш да махнеш спокойно твоята проверка за дължина. Бъди сигурен, че preg_match() ще го направи. Ако дължината е пр. от 3 до 15 символа, ще изглежда така:

PHP:
preg_match("/^[a-z0-9\_-]{3,15}$/i", $username)

Разбира се, ако много държиш на твоята проверка, използвай знака "+":
PHP:
preg_match("/^[a-z0-9\_-]+$/i", $username)
 
anonimen каза:
bganonymous каза:
anonimen каза:
Виж моя отговор. С него "asd<>" няма да мине.
А какво е това MIN и MAX. Аз съм си направил друга проверка, която да проверява за дължината на username.
Можеш да махнеш спокойно твоята проверка за дължина. Бъди сигурен, че preg_match() ще го направи. Ако дължината е пр. от 3 до 15 символа, ще изглежда така:

PHP:
preg_match("/^[a-z0-9\_-]{3,15}$/i", $username)

Разбира се, ако много държиш на твоята проверка, използвай знака "+":
PHP:
preg_match("/^[a-z0-9\_-]+$/i", $username)
Мерси много, а каква е разликата между preg_match и eregi?
 
Че preg_match е много по-мощен от ereg(i) и че ereg(i) вече са deprecated функции.
 

Back
Горе