Регулярное выражение в PHP — в чем ошибка?

if(!preg_match('[a-zA-Z0-9]', $_POST['login'])) exit("Неверный логин");

Проверяю логин на соответствие буквам и цифрам, но скрипт не работает. Переменная, содержащая логин, точно доходит до скрипта, и подходит под само выражение. В результате всегда вижу "Неверный логин".
  • Вопрос задан
  • 2598 просмотров
Решения вопроса 1
radist2s
@radist2s
Back-end и front-end разработчик
if (preg_match('~[^\w]~', $_POST['login'])) exit("Неверный логин");


Где ^ - отрицание, \w - Буквенный или цифровой символ или знак подчёркивания (wiki)
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
@Jailbird
if(!preg_match('/^[a-zA-Z0-9]*$/is', $_POST['login'])) exit("Неверный логин");
Ответ написан
Комментировать
@Elkaz
if(!preg_match('/[a-zA-Z]/is', $_POST['login'])) exit("Неверный логин");
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы