⊗jsSpRENPB 132 of 294 menu

Icke-fångande parenteser i JavaScript regex

Parenteser ( ) har två funktioner - gruppering av tecken och funktionen att fånga (capture group). Men vad gör man om man vill gruppera, men inte fånga? För att lösa detta problem har speciella icke-fångande parenteser (?: ) skapats - de grupperar, men fångar inte.

Exempel

I följande exempel behöver vi den första parentesen för gruppering, och den andra - för att fånga. Däremot fångar båda parenteserna data i capture groups:

let str = 'abab123'; let res = str.match(/(ab)+([1-9]+)/);

Som ett resultat kommer våra capture groups att innehålla följande:

console.log(res[0]); // skriver ut 'abab123' console.log(res[1]); // skriver ut 'ab' console.log(res[2]); // skriver ut '123'

Exempel

Låt oss göra så att den första parentesen endast grupperar, men inte fångar:

let str = 'abab123'; let res = str.match(/(?:ab)+([1-9]+)/);

Som ett resultat kommer vårt nummer att finnas i den första capture groupen:

console.log(res[1]); // skriver ut '123'
Svenska
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Vi använder kakor för webbplatsens funktion, analys och personalisering. Behandling av data sker i enlighet med Integritetspolicyn.
acceptera alla anpassa avvisa