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

1.16K
.
ПеревозЧЕГ
Лопух Паутинистый
/[^\da-z\-\@\*\(\)\?\!\~\_\=\[\]]+/

скопировал с джона, работает, а все остальное нет. лол
.
Enter нажат, к чему теперь рыданья…
ПеревозЧЕГ, а у тебя должно выполняться условие
if (preg_match("|^\D[A-Za-z0-9\._-]{4,20}|i",$login))

или наоборот, не должно выполняться?
.
ПеревозЧЕГ
Лопух Паутинистый
Sitego,
if (preg_match("/[^\da-z\-\@\*\(\)\?\!\~\_\=\[\]]+/",$login)){
            $error['login'][] = 'Используйте буквы англ. языка и цифры.';
    }

Идет проверка логина, если логин норм то потом пойдет запись в базу, если нет, то ошибка запишется в массив а потом выведется сообщение что логин неверно заполнен.
Вот как выше работает. только не совсем то что мне хотелось получить. тут логин может быть вплоть из одних цифр.
.
Sitego
Enter нажат, к чему теперь рыданья…
# ПеревозЧЕГ (09.06.2016 / 23:44)
Sitego, if (preg_match("/[^\da-z\-\@\*\(\)\?\!\~\_\=\[\]]+/",$login)){
$error['login'][] = 'Используйте буквы англ. языка и цифры.';
}
Идет проверка логина, если логин норм то пот
Попробуй в приведённом коде заменить
preg_match("/[^\da-z\-\@\*\(\)\?\!\~\_\=\[\]]+/",$login))

на
preg_match("/^\D[A-Za-z0-9\._-]{4,20}/",$login))
.
ПеревозЧЕГ
Лопух Паутинистый
Sitego, Не работает. работает только Олегов код и все пойду спать на сегодня. Весь вечер убил зря.
http://yournet.kz/blog/php/pod ... henij Вот тут взял рег. выражение и тоже не работает
.
Enter нажат, к чему теперь рыданья…
ПеревозЧЕГ, ещё попробуй в том коде, что я дал, убрать начало строки ^
.
ДоХтор
Проверил на локалке, работает.
/*
нужен логин, в котором можно использовать латинские буквы -_ и точку, при этом логин не с цифры должен начинаться
*/
if (!preg_match('~^[^\d][a-z\d\._-]+~i', $login)) {
    $error['login'][] = 'Используйте буквы англ. языка и цифры.';
}
.
ramzes
# ПеревозЧЕГ (09.06.2016 / 23:44)
Sitego, if (preg_match("/[^\da-z\-\@\*\(\)\?\!\~\_\=\[\]]+/",$login)){
$error['login'][] = 'Используйте буквы англ. языка и цифры.';
}
Идет проверка логина, если логин норм то пот
чукотская регулярка, по методу "от противного"
и судя по всему этот противный тот еще индус.
ты написал бы под какие условия логин должен подходить, тебе бы давно присоветовали.
Док, только + в этом куске [^\d]+ не обязателен
.
ramzes,
Док, только + в этом куске [^\d]+ не обязателен
Да, подправил шаблон
.
Sitego
Enter нажат, к чему теперь рыданья…
ПеревозЧЕГ, вот проверил, всё работает, изменишь как тебе надо. Я правильный код изначально написал, просто не добавил конец строки. Если надо пароль с ограничением от 4 до 20 символов, то писать {3,19}, потому что в начале отрицание символа (цифры).
Тестировал так
$login = 'Login';
    if (!preg_match("|^\D[A-Za-z0-9\.\_\-]{3,19}$|",$login)){
               echo 'Используйте буквы англ. языка и цифры.';
        }else{
echo 'Всё в норме!';
}


З.Ы. Здесь \_\- обратные слеши можно и не ставить, потому что в условии подчеркивание и минус стоят в конце и означают именно сами себя.
Всего: 55