Ваше регулярное выражение слишком сложно для того, что вам нужно. первая часть в порядке, вы разрешаете буквы и цифры, вы можете просто добавить пробел с ним.
Тогда, если вы используете символ *
, который переводится в 0 или любой другой, вы можете решить проблему с пустой строкой.
См. Здесь.
/^[a-z0-9 ]*$/gmi
Обратите внимание, что я не использую A-z
, как вы, потому что это переводит на любой символ между A
в ascii (101) и z
(172). это означает, что он также будет соответствовать символу между (от 133 до 141, которые не являются ни цифрой, ни буквой). Вместо этого я использую a-z
, которые разрешают строчные буквы, и использовал флаг i
, который указывает регулярному выражению не заботиться о регистре.
Вот визуальное объяснение регулярного выражения
Вы также можете проверить больше случаев в этом регулярном выражении101