У меня есть следующий Regex:Использование Regex в качестве шаблона
var legal = /[a-zA-Z0-9\._\-]+/;
который должен определить, что только действительные строки те, сделанные из этих символов внутри []
, неоднократный положительное число раз.
И так, следующие прекрасно работает:
legal.test("a"); // => true
legal.test("/"); // => false
Однако, это не работает нормально:
legal.test("a/"); // => true
Это должно быть ложным. Я попытался положить $
в конце Regex для обозначения конца строки, и это помогает, но не всегда:
var legal2 = /[a-zA-Z0-9\._\-]+$/;
legal2.test("a"); // => true
legal2.test("a/"); // => false
legal2.test("a/a"); // => true
Последняя должна быть false
, поэтому $
в конце концов, не всегда помогает ,
Что мне нужно сделать для моего регулярного выражения, чтобы заставить его действовать как «шаблон», для которого строки должны быть проверены?
Вы уже были на полпути. '/^[a-zA-Z0-9 \ ._ \ -] + $ /' (Другими словами - зачем только привязывать его до конца?) – Tomalak
@Tomalak, [это должен быть ответ] (http://meta.stackexchange.com/a/117268/217110) – Liam
слишком поздно ....... – Liam