Autor Zpráva
Anonymouz
Profil
Píšu rozšíření do VSC, které vyhledá výskyt všech H2 v dokumentu a doplní jim všem id na základě jejich obsahu, z kterého odstraní akorát diakritiku a mezery (prostě převede na url) a na začátek dokumentu vytvoří odkazy na tyto vytvořené kotvy. Vyzobnout H2 ze stringu a vypsat je někde jinde upravené dokážu, nedokážu je ale nahradit v tom původním stringu. Poradí/pomůže mi s tím někdo?

Pro ilustraci jsem napsal zjednodušenou ukázku, ve které místo ID s odstraňováním diakritiky používám title="" s toUpperCase(), aby to bylo co nejpřehlednější.

Živá ukázka

V ukázce potřebuji, nahradit obsah v <textarea> , ale potřebuji zachovat i ten výpis.
RastyAmateur
Profil
const s = 'Hello <h2>World!</h2> How <h2>Are</h2> you?'
const o = s.replaceAll(/<h2>(.*?)<\/h2>/g, (fullMatch, content) => `<h2 title="${content.toUpperCase()}">${content}<\/h2>`)

o === 'Hello <h2 title="WORLD!">World!</h2> How <h2 title="ARE">Are</h2> you?'

Nutno podotknout, že daný kód nebere v potaz žádné atributy u h2 a ani nijak neošetřuje samotný obsah. Pokud je to pouze pro tebe, asi to lze oželit, ale do produkce pro nějaké zákazníky či uživatele bych to určitě nedával...
Anonymouz
Profil
Rozšíření bude pouze pro mě, děkuji za pomoc.
Ještě se zeptám, ten parametr fullMatch tam být musí taky? Nevidím ho tam dál používat.
blaaablaaa
Profil
Anonymouz:
Ano,
(fullMatch, content) =>... je něco jako function(fullMatch, content) { return...}, je tedy potřeba zachovat pořadí parametrů (i když jej nikde nepoužijeme).

Pro podrobnější info a rozdíly hledej arrow functions, případně pak ještě named parameters.
_es
Profil
Anonymouz:
Do obsahu textarea dávaš priamo neošetrený HTML kód.
Čo ak tam budú, alebo tam budeš chcieť dať, značky </textarea> </body> </html>?
anonym_
Profil *
_es:
Čo ak tam budú, alebo tam budeš chcieť dať, značky </textarea> </body> </html>?
Vzhledem k tomu, že to bude užívat jen tazatel sám, asi ví, co tam chce dávat za obsah. Nemyslíš?

Navíc dvě ze tvých 3 uvedených značek jsou nepovinné a pokud v té textaree bude nějaký obsah (tipl bych si něco na způsob WYSIWYGu), nedovedu si představit užití, kdy bych někam chtěl/potřeboval nacpat konec textarey.

Vaše odpověď

Mohlo by se hodit

Neumíte-li správně určit příčinu chyby, vkládejte odkazy na živé ukázky.
Užíváte-li nějakou cizí knihovnu, ukažte odpovídajícím, kde jste ji vzali.

Užitečné odkazy:

Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0