Проверьте, соответствует ли строка регулярному выражению в JS
Я хочу использовать JavaScript (может быть с jQuery), чтобы сделать некоторую проверку на стороне клиента, чтобы проверить, соответствует ли строка регулярному выражению:
^([a-z0-9]{5,})$
В идеале это будет выражение, которое возвращает true или false.
Я новичок JavaScript, делает match()
делать то, что мне нужно? Кажется, он проверяет, соответствует ли часть строки регулярному выражению, а не всему.
6 ответов
использовать regex.test()
если все, что вам нужно, это логический результат:
/^([a-z0-9]{5,})$/.test('abc1'); // false
/^([a-z0-9]{5,})$/.test('abc12'); // true
/^([a-z0-9]{5,})$/.test('abc123'); // true
...и вы можете удалить ()
из вашего регулярного выражения, так как вам не нужен захват.
использовать test()
способ :
var term = "sample1";
var re = new RegExp("^([a-z0-9]{5,})$");
if (re.test(term)) {
console.log("Valid");
} else {
console.log("Invalid");
}
можно использовать match()
а также:
if (str.match(/^([a-z0-9]{5,})$/)) {
alert("match!");
}
но test()
кажется, быстрее, как вы можете читать здесь.
важная разница между match()
и test()
:
match()
работает только со строками, но test()
также работает с целыми числами.
12345.match(/^([a-z0-9]{5,})$/); // ERROR
/^([a-z0-9]{5,})$/.test(12345); // true
/^([a-z0-9]{5,})$/.test(null); // false
// Better watch out for undefined values
/^([a-z0-9]{5,})$/.test(undefined); // true
использовать /youregexp/.test(yourString)
Если вы только хотите знать, соответствует ли ваша строка регулярному выражению.
вот пример, который ищет определенные теги HTML, поэтому ясно, что /someregex/.test()
возвращает логическое значение:
if(/(span|h[0-6]|li|a)/i.test("h3")) alert('true');