właśnie się dowiedziałem, że w JS regexpy przetrzymują stan po execu XD jak się używa flagi g
const rx = /strims(\.ru|\.pl)/grx.exec(str);rx.exec(str); // takiego wała, nie zmatchujesz, musisz zresetować lastIndex w obiekcie regexpowym albo pozbyć się flagi xD
@sens:
Nie rozumiem, czego nie można?str = 'strims.pl strims.ru' rx = /strims(\.ru|\.pl)/gx = rx.exec(str);y = rx.exec(str);
console.log({ x, y })
Wypluwa:{ x: Array [ "strims.pl", ".pl" ], y: Array [ "strims.ru", ".ru" ] }
@Deykun:const rx = /(?<color>#[0-9a-f]{3}(?:[0-9a-f]{3})?)/g;const strings = ['#aaa', '#bbb', '#f00f00', '#abcdef'];for (let str of strings) { const match = rx.exec(str)?.groups; console.log(match?.color)}
co drugi jest undefined