Метод JavaScript String match () возвращает результат сопоставления строки с регулярным выражением.
Синтаксис match()
метода:
str.match(regexp)
Здесь str - это строка.
match () Параметры
match()
Метод принимает в:
- regexp - объект регулярного выражения (аргумент неявно преобразуется в,
RegExp
если он не являетсяRegExp
объектом)
Примечание: если вы не укажете никаких параметров, match()
возвращается ("")
.
Возвращаемое значение из match ()
- Возвращает объект,
Array
содержащий совпадения, по одному элементу для каждого совпадения. - Возвращает,
null
если совпадений не найдено.
Пример 1: Использование match ()
const string = "I am learning JavaScript not Java."; const re = /Java/; let result = string.match(re); console.log("Result of matching /Java/ :"); console.log(result); const re1 = /Java/g; let result1 = string.match(re1); console.log("Result of matching /Java/ with g flag:") console.log(result1);
Вывод
Результат сопоставления / Java /: ('Java', индекс: 14, ввод: 'Я изучаю JavaScript, а не Java.', Группы: undefined) Результат сопоставления / Java / с флагом g: ('Java', 'Java' )
Здесь мы видим, что без использования g
флага в результате мы получаем только первое совпадение, но с подробной информацией, такой как индекс, ввод и группы.
Примечание . Если регулярное выражение не включает g
флаг, str.match()
вернет только первое совпадение, подобное RegExp.exec()
. Возвращенный элемент также будет иметь следующие дополнительные свойства:
groups
- Объект именованных групп захвата, имеющих ключи в качестве имен и значения в соответствии с захваченными совпадениями.index
- Индекс поиска, по которому был найден результат.input
- Копия поисковой строки.
Пример 2: соответствие разделов в строке
const string = "My name is Albert. YOUR NAME is Soyuj."; // expression matches case-insensitive "name is"+ any alphabets till period (.) const re = /namesiss(a-zA-Z)+./gi; let result = string.match(re); console.log(result); // ( 'name is Albert.', 'NAME is Soyuj.' ) // using named capturing groups const re1 = /namesiss(?(a-zA-Z)+)./i; let found = string.match(re1); console.log(found.groups); // (name: "Albert")
Вывод
('имя - Альберт.', 'ИМЯ - Союдж.') (имя: "Альберт")
Здесь мы использовали регулярное выражение для сопоставления определенной части строки. Мы также можем захватить определенные группы в матче, используя синтаксис, показанный выше.
Рекомендуемая литература: JavaScript String matchAll ()