Проверьте, соответствует ли строка регулярному выражению в 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');