Как задать элементам ID с условием первого не повторяющегося далее символа?

Имеются несколько заголовков, у которых первые символы - числа. Числа могут повторяться несколько раз в качестве первых символов в каждом новом заголовке.

Как сделать, чтобы атрибут id задавался только тем заголовкам, у которых число 1, 2, 3 и т.д. встречается впервые?

Например, чтобы из:

<h2>1 сезон, 1 серия</h2>
<h2>1 сезон, 2 серия</h2>
<h2>2 сезон, 1 серия</h2>
<h2>2 сезон, 2 серия</h2>

Получалось:

<h2 id="sezon-1">1 сезон, 1 серия</h2>
<h2>1 сезон, 2 серия</h2>
<h2 id="sezon-2">2 сезон, 1 серия</h2>
<h2>2 сезон, 2 серия</h2>

Ответы (1 шт):

Автор решения: UModeL

[...document.querySelectorAll('h2')].filter(el => /\D1 серия/gim.test(el.textContent)).forEach(el => el.setAttribute('id', el.textContent.replace(/^(\d+).*/m, 'sezon-$1')));

console.log([...document.querySelectorAll('h2')]);
<h2>1 сезон, 1 серия</h2>
<h2>1 сезон, 2 серия</h2>
<h2>2 сезон, 1 серия</h2>
<h2>2 сезон, 2 серия</h2>

→ Ссылка