Regex, чтобы проверить, содержит ли строка только буквенно-цифровые символы и пробелы - javascript
Это то, что у меня есть до сих пор:
function checkTitle(){
reg = /^[\w ]+$/;
a = reg.test($("#title").val());
console.log(a);
}
До сих пор в моих тестах он ловил все специальные символы, кроме _
.
Как я могу уловить все специальные символы, включая _
в текущей функции?
Мне нужна строка только для буквенно-цифровых символов и пробелов. Цените помощь, потому что мне трудно понять регулярное выражение.
Спасибо!
Ответы
Ответ 1
Ваша проблема в том, что \w
соответствует всем буквенно-цифровым значениям и подчеркивания.
Вместо того, чтобы анализировать всю строку, я просто ищу любые нежелательные символы. Например
var reg = /[^A-Za-z0-9 ]/;
Если результат reg.test
равен true
, строка не проходит проверку.
Ответ 2
Поскольку вы заявляете, что новичок в RegExp, я мог бы также добавить несколько советов с ответом. Я предлагаю следующее regexp:
/^[a-z\d ]+$/i
Здесь:
- Нет необходимости в верхнем регистре A-Z из-за флага
i
в конце, который соответствует нечувствительным к регистру образом
- \d специальный символ представляет цифры