Ответ 1
Если вам нужно только проверить строку ввода для соответствия регулярному выражению, RegExp.test
наиболее подходит. Он даст вам возвращаемое значение boolean
, которое делает его идеальным для условий.
RegExp.exec
дает возвращаемое значение типа массива со всеми группами захвата и совпадающими индексами. Поэтому это полезно, когда вам нужно работать с захваченными группами или индексами после матча. (Кроме того, он ведет себя немного иначе по сравнению с String.match
при использовании глобального модификатора /g
)
В конечном счете, это не будет иметь большого значения в скорости или эффективности. Регулярное выражение будет по-прежнему оценено, и все соответствующие группы и индексы будут доступны через глобальный объект RegExp
(хотя настоятельно рекомендуется использовать возвращаемые значения).
Что касается теста if
, это просто вопрос личного вкуса. Присвоение результата теста регулярного выражения переменной со значимым именем (например, isEmail
) может улучшить читаемость, но кроме этого они оба прекрасны.