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