#javascript
Вопрос:
Я хочу, чтобы пользователи создавали имя пользователя с некоторыми условиями.
Имя пользователя должно содержать не менее 6 символов.
Он может содержать символ подчеркивания, но это не обязательно.
Он может содержать a-z или A-Z или 0-9 символов.
в настоящее время это то, что я ставлю на проверку
var usern= /^[a-zA-Z0-9_]{6,}[a-zA-Z] [0-9]*$/;
но имя пользователя не работает, если это joseph_123, joseph123_ или jose123
Комментарии:
1. Ваше текущее регулярное выражение читается примерно так: «6 или более цифр, букв или знаков подчеркивания, за которыми следует 1 или более букв, за которыми следует 0 или более цифр». regex101.com это отличная утилита для понимания ваших шаблонов регулярных выражений (не забудьте выбрать ECMAScript/Javascript перед запуском)
2. [a-zA-Z0-9_]{6,}
3. Если у вас есть ответ, обязательно опубликуйте его как таковой. Я вроде как задаюсь вопросом, является ли
______
это допустимым именем пользователя, хотя и в соответствии с критериями OP.4. @sojin это действительно сработало для меня. Спасибо
Ответ №1:
Вы можете использовать w
Метасимвол. Соответствует a-z, A-Z, 0-9 и _ (подчеркивание).
^w{6,}$
const TESTS = ['joseph_123', 'joseph123_', 'jose123' ,'1234', 'á123456', '1223456á', 'abc-def']
TESTS.forEach((uname) => {
console.info(uname ': ' uname.match(/^w{6,}$/))
})