Как мне узнать, содержит ли строка только буквы, цифры и символы подчеркивания?

#javascript #algorithm

Вопрос:

Я хочу проверить, есть ли в моей строке только буквы, цифры или подчеркивание. У меня есть этот код

 const str = 'test'  for (let i = 0; i lt; str.length; i  ) {  if (str.charAt(i) != /^(w|_) $/) {  return false  } } 

Несмотря ни на что, он всегда возвращает значение false, хотя просто вводит допустимые значения.

Кто-нибудь может помочь?

Большое спасибо!

Комментарии:

1. Почему вы пытаетесь проверить этот символ за символом для начала, а не только для всей строки за один раз?

2. удалите все, кроме букв, цифр и знаков подчеркивания, затем сравните .length с исходной строкой, если она короче, то она ложная

3. Основываясь на коде в вашем вопросе (я предоставил фрагмент), вы должны получить сообщение об ошибке.

4. @Энди, это часть большого файла, я просто поместил ту часть, где я боролся. С решением, которое Тим предоставил ниже, работает так, как ожидалось.

5. @CBroe Я просто не знал о существовании test (), поэтому я подумал, что должен проверять символ за символом

Ответ №1:

Просто используйте test() с шаблоном регулярных выражений ^w :

 var str = 'test_here_123'; if (/^w $/.test(str)) {  console.log("only letters, numbers, or underscore"); } 

Для справки, w по определению соответствует буквам, цифрам или подчеркиванию (которые в совокупности известны как «словесные символы»).

Комментарии:

1. Ничего себе, довольно просто и работает правильно. Большое спасибо, Тим!!