Буквенно-цифровой, тире и подчеркивание, но без пробелов регулярное выражение проверить JavaScript
попытка проверить ввод с помощью регулярного выражения.
поле должно содержать только буквенно-цифровые символы, тире и подчеркивания и не должно содержать пробелов.
однако, приведенный ниже код позволяет пространство.
чего мне не хватает?
var regexp = /^[a-zA-Z0-9-_]$/;
var check = "checkme";
if (check.search(regexp) == -1)
{ alert('invalid'); }
else
{ alert('valid'); }
5 ответов:
однако, приведенный ниже код позволяет пространство.
нет, это не так. Однако, это будет только на входе с длиной 1. Для входов с длиной больше или равной 1, вам нужно
+
после класса символов:var regexp = /^[a-zA-Z0-9-_]+$/; var check = "checkme"; if (check.search(regexp) == -1) { alert('invalid'); } else { alert('valid'); }
обратите внимание, что ни
-
(в данном случае), ни_
нужно экранирование.
вы должныN не используйте string.матч но регулярное выражение.прототип.тест (т. е.
/abc/.test("abcd")
), а не строку.поиск() если вас интересует только логическое значение. Вам также нужно повторить свой класс персонажа, как описано в ответе Энди E:var regexp = /^[a-zA-Z0-9-_]+$/;