⊗jsSpRENPB 132 of 294 menu

Незахващащи скобки в регулярните изрази на JavaScript

Скобите ( ) изпълняват две функции - групиране на символи и функция на захващаща група. А какво да правим, ако трябва да групираме, но да не захващаме в група? За решаване на този проблем са създадени специални незахващащи скобки (?: ) - те групират, но не захващат в група.

Пример

В следващия пример първите скоби са ни необходими за групиране, а вторите - за захващаща група. Обаче, и едните, и другите скоби запазват данни в група:

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

В резултат в нашите захващащи групи ще има следното:

console.log(res[0]); // ще изведе 'abab123' console.log(res[1]); // ще изведе 'ab' console.log(res[2]); // ще изведе '123'

Пример

Нека направим така, че първата двойка скоби само да групира, но да не захваща в група:

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

В резултат в първата захващаща група ще бъде нашето число:

console.log(res[1]); // ще изведе '123'
Български
AfrikaansAzərbaycanবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Ние използваме бисквитки за работата на сайта, анализ и персонализация. Обработката на данни се извършва в съответствие с Политика за поверителност.
приемам всички настройки отхвърляне