Ответ 1
Основное использование
Во-первых, посмотрим, что делает каждая функция:
regexObject. test (String)
Выполняет поиск соответствия между регулярным выражением и указанной строкой. Возвращает true или false.
string. match (RegExp)
Используется для получения совпадений при сопоставлении строки с регулярным выражением. Возвращает массив с совпадением или
null
, если их нет.
Так как null
оценивается как false
,
if ( string.match(regex) ) {
// There was a match.
} else {
// No match.
}
Производительность
Есть ли разница в производительности?
Да. Я нашел эту короткую заметку в сайте MDN:
Если вам нужно знать, соответствует ли строка регулярному выражению regexp, используйте regexp.test(string).
Значит ли разница?
Ответ еще раз ДА! Этот jsPerf Я добавил, что разница составляет ~ 30% - ~ 60% в зависимости от браузера:
Заключение
Используйте .test
, если вам нужна более быстрая логическая проверка. Используйте .match
для получения всех совпадений при использовании глобального флага g
.