пользовательское имя пользователя с проверкой javascript

#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,}$/))
}) 

https://www.w3schools.com/jsref/jsref_regexp_wordchar.asp