Проверка строки только буквы и цифры, кроме как

0
"Hello" returns true
"12345" returns true
"Hello1" returns false
"123H" returns false

regex может проверить только буквы и цифры, кроме обоих?
или
Проверить функцию PHP?

  • 1
    Ваш вопрос действительно непонятен
Теги:

3 ответа

1
Лучший ответ
^(?=(?:\d+|[a-zA-Z]+)$)[a-zA-Z0-9]+$

Еще одна вариация. Смотрите демоверсию.

https://regex101.com/r/sH8aR8/11

$re = "/^(?=(?:\\d+|[a-zA-Z]+)$)[a-zA-Z0-9]+$/m";
$str = "Hello\n12345\nHello1\n123H";

preg_match_all($re, $str, $matches);
2

Вы можете использовать что-то вроде этого: ^([A-Za-z]+)|([0-9]+)$. Это позволит убедиться, что строка либо заполнена буквами исключительно, либо номерами, а не обоими.

Вы можете проверить регулярное выражение здесь.

  • 0
    Если начальная буква "буква", она не работает * "123H" возвращает ложь *
  • 0
    @GGu: Можете ли вы расширить свой комментарий? Я не могу понять, что вы имеете в виду.
2

Regex:

/^[A-za-z]*|[0-9]*$/

Проверьте начало строки, затем количество букв ИЛИ любое количество цифр, затем конец строки.

Пустая строка вернет true. Если эта проблема изменит * на a +.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню