Regex, не обнаруживать пробелы в строке

Это моя текущая проверка регулярных выражений:

const validPassword = (password) => password.match(/^(?=.*\d)(?=.\S)(?=.*[a-zA-Z]).{6,}$/);

У меня есть чек не менее чем на 1 букву и 1 цифру и не менее 6 символов. Однако я также хочу убедиться, что в строке нет пробелов.

Пока что я могу ввести 6 строк символов, включая пробелы:(

Нашел этот ответ здесь, но по какой-то причине в моем коде это проходит.

Какое регулярное выражение для сопоставления не содержит пробелов между текстом?

1 ответ

Решение

Кажется тебе нужно

/^(?=.*\d)(?=.*[a-zA-Z])\S{6,}$/

подробности

  • ^ - начало строки
  • (?=.*\d) - 1 цифра (минимум)
  • (?=.*[a-zA-Z]) - не менее 1 буквы
  • \S{6,} - 6 или более непробельных символов
  • $ - конец строки привязки

Имея в виду принцип контраста, вы можете изменить шаблон в

/^(?=\D*\d)(?=[^a-zA-Z]*[a-zA-Z])\S{6,}$/
Другие вопросы по тегам