matchAll Array для группы 1 соответствий регулярных выражений - PullRequest
1 голос
/ 02 декабря 2019

Я пытаюсь найти способ получить все совпадения моей группы 1 в массив без использования цикла с matchAll().

Вот что я пока имею, но это только первыйmatch:

let str = "123ABC, 123ABC"
let results = str.matchAll(/123(ABC)/gi);
let [group1] = results;
alert(group1[1]);

Как я могу получить результаты matchAll в одном массиве? Ака:

// ABC, ABC

Ответы [ 3 ]

1 голос
/ 02 декабря 2019

Если вам нужна только часть строки abc, вам не нужно использовать метод matchAll. Вы можете легко получить желаемые результаты, просто используя выражение регулярного выражения с методом match.

let str = "123ABC, 123ABC"
let results = str.match(/(?<=123)ABC/gi);
console.log(results)
// ["ABC","ABC"]

Вот еще немного информации об этих типах выражений регулярных выражений Взгляд вперед и взгляд назад

1 голос
/ 02 декабря 2019

const str = "123ABC, 123ABC"

const results = Array.from(
  str.matchAll(/123(ABC)/gi), 
  ([_, g1]) => g1
)

console.log(results)
0 голосов
/ 02 декабря 2019

Вы можете использовать Array.from для преобразования результатов в массив и выполнения карты за один раз:

const matches = Array.from(results, match => match[1])
...