⊗jsSpRELAB 133 of 294 menu

JavaScript регуляркасында позитивдик жана негативдик көрүү

Кээде төмөнкүдөй маселени чечүү керек болот: 'aaa' сабын таап, аны '!' менен алмаштыруу, бирок анткени гана 'aaa'дан кийин 'x' турат, ал эми 'x'дын өзү алмаштырылбашы керек. Эгерде биз маселени 'түздөн-түз' чечүүгө аракет кылсак, анда эч нерсе чыкпайт:

'aaax baaa'.replace(/aaax/g, '!'); // '! baaa' кайтарат, ал эми биз '!x baaa' алууну каалаганбыз

Алдыга карап көрүү

Маселени чечүү үчүн, 'x' алмаштырылбашы керектигин айтуу ыкмасы керек. Бул (?= ) атайын кашаалары менен жасалат, алар жөн гана карап көрүшөт, бирок өздөрү менен алышпайт.

Бул кашаалар алдыга карап позитивдик көрүү деп аталат. Позитивдик - анткени 'x' (биздин учурда) болушу керек - ошондо гана алмаштыруу болот.

Келгиле, биздин маселени чечүү үчүн бул кашааларды колдонолу:

'aaax aaab'.replace(/aaa(?=x)/g, '!'); // '!x aaab' кайтарат

Ошондой эле алдыга карап негативдик көрүү бар - (?! ) - ал, тескерисинче, бир нерсе болбошу керектигин айтат. Төмөнкү мисалда, алмаштыруу анткени гана 'aaa'дан кийин 'x' эмес турганда гана болот:

'aaax aaab'.replace(/aaa(?!x)/g, '!'); // 'aaax !b' кайтарат

Артка карап көрүү

Ошол сыяктуу эле артка карап позитивдик көрүү бар - (?<= ). Төмөнкү мисалда алмаштыруу анткени гана 'aaa'дын алдында 'x' турганда гана болот:

'xaaa'.replace(/(?<=x)aaa/g, '!'); // 'x!' кайтарат

Ошондой эле артка карап негативдик көрүү бар - (?<! ). Төмөнкү мисалда алмаштыруу анткени гана 'aaa'дын алдында 'x' турбаганда гана болот:

'baaa'.replace(/(?<!x)aaa/g, '!'); // 'b!' кайтарат

Практикалык тапшырмалар

Функциялардын аттарын камтыган сап берилген:

let str = 'func1() func2() func3()';

Сабактан функциялардын аттарынын массивин алыңыз.

Тег менен сап берилген:

let str = '<a href="" class="eee" id="zzz">';

Бул тегдин атрибуттарынын аттарынын массивин алыңыз.

Өзгөрмөлөр менен сап берилген:

let str = '$aaa $bbb $ccc xxxx';

Алдында доллар белгиси турган ички саптарды алыңыз.

Кыргызча
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
Биз сайттин иштөөсү, аналитика жана персонализация үчүн cookie файлдарын колдонобуз. Маалыматтарды иштетүү Маалыматты коргоо саясаты боюнча жүргүзүлөт.
баарын кабыл алуу ыңгайлаштыруу четке кагуу