Проверьте соответствие строки регулярному выражению в JS
Я хочу использовать JavaScript (может быть с jQuery), чтобы выполнить некоторую проверку на стороне клиента, чтобы проверить соответствие строки регулярному выражению:
^([a-z0-9]{5,})$
В идеале это выражение будет возвращено true или false.
Я новичок в JavaScript, match()
делает то, что мне нужно? Кажется, проверяет, соответствует ли часть строки регулярному выражению, а не всему.
Ответы
Ответ 1
Используйте regex.test()
если все, что вам нужно, это логический результат:
/^([a-z0-9]{5,})$/.test('abc1'); // false
/^([a-z0-9]{5,})$/.test('abc12'); // true
/^([a-z0-9]{5,})$/.test('abc123'); // true
... и вы можете удалить ()
из вашего регулярного выражения, так как вам не нужен захват.
Ответ 2
Используйте метод test()
:
var term = "sample1";
var re = new RegExp("^([a-z0-9]{5,})$");
if (re.test(term)) {
console.log("Valid");
} else {
console.log("Invalid");
}
Ответ 3
Вы также можете использовать 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
Ответ 4
Используйте /youregexp/.test(yourString)
, если вы хотите узнать, соответствует ли ваша строка регулярному выражению.
Ответ 5
Вот пример, который ищет определенные теги HTML, поэтому ясно, что /someregex/.test()
возвращает логическое значение:
if(/(span|h[0-6]|li|a)/i.test("h3")) alert('true');
Ответ 6
let str = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ';
let regexp = /[a-d]/gi;
console.log(str.match(regexp));
Ответ 7
пожалуйста, попробуйте этот цветок:
/^[a-z0-9\_\.\-]{2,20}\@[a-z0-9\_\-]{2,20}\.[a-z]{2,9}$/.test('[email protected]');
правда
Ответ 8
пытаться
/^[a-z\d]{5,}$/.test(str)
console.log( /^[a-z\d]{5,}$/.test("abc123") );
console.log( /^[a-z\d]{5,}$/.test("ab12") );
Ответ 9
Я бы рекомендовал использовать метод execute, который возвращает null, если совпадений не существует, в противном случае он возвращает полезный объект.
let case1 = /^([a-z0-9]{5,})$/.exec("abc1");
console.log(case1); //null
let case2 = /^([a-z0-9]{5,})$/.exec("pass3434");
console.log(case2); // ['pass3434', 'pass3434', index:0, input:'pass3434', groups: undefined]