⊗jsSpRELAB 133 of 294 menu

JavaScript Düzenli İfadelerde Pozitif ve Negatif İnceleme

Bazen şu tür bir problemi çözmek gerekir: 'aaa' dizesini bul ve '!' ile değiştir, ancak sadece 'aaa''dan sonra 'x' geliyorsa, ve 'x''in kendisi değiştirilmesin. Eğer problemi 'doğrudan' çözmeye çalışırsak, başarılı olamayız:

'aaax baaa'.replace(/aaax/g, '!'); // '! baaa' döndürür, oysa '!x baaa' istiyorduk

İleri İnceleme

Problemi çözmek için, 'x''in değiştirilmemesi gerektiğini söylemenin bir yoluna ihtiyaç var. Bu, yalnızca bakar ancak eşleşmeye dahil etmez (tüketmez) olan (?= ) özel parantezleri ile yapılır.

Bu parantezlere pozitif ileri inceleme denir. Pozitif - çünkü 'x' (bizim durumumuzda) olmalıdır - ancak o zaman değiştirme gerçekleşir.

Şimdi bu parantezleri problemimizi çözmek için kullanalım:

'aaax aaab'.replace(/aaa(?=x)/g, '!'); // '!x aaab' döndürür

Ayrıca negatif ileri inceleme vardır - (?! ) - bu, tam tersine, bir şeyin olmaması gerektiğini söyler. Bir sonraki örnekte, değiştirme sadece 'aaa''dan sonra 'x' OLMADIĞI zaman gerçekleşir:

'aaax aaab'.replace(/aaa(?!x)/g, '!'); // 'aaax !b' döndürür

Geriye İnceleme

Benzer şekilde pozitif geriye inceleme vardır - (?<= ). Bir sonraki örnekte, değiştirme sadece 'aaa''dan önce 'x' geldiğinde gerçekleşir:

'xaaa'.replace(/(?<=x)aaa/g, '!'); // 'x!' döndürür

Ve ayrıca negatif geriye inceleme vardır - (?<! ). Bir sonraki örnekte değiştirme, sadece 'aaa''dan önce 'x' OLMADIĞI zaman gerçekleşir:

'baaa'.replace(/(?<!x)aaa/g, '!'); // 'b!' döndürür

Pratik Problemler

Fonksiyon isimleri içeren bir dize verildi:

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

Dizeden fonksiyon isimlerini içeren bir dizi elde edin.

Bir HTML etiketi içeren bir dize verildi:

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

Bu etiketin öznitelik isimlerini içeren bir dizi elde edin.

Değişkenler içeren bir dize verildi:

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

Önünde dolar işareti olan alt dizeleri elde edin.

Türkçe
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenЎзбекOʻzbekTiếng Việt
Web sitesinin çalışması, analiz ve kişiselleştirme için çerezleri kullanıyoruz. Veri işleme, Gizlilik Politikası'na uygun olarak gerçekleşir.
tümünü kabul et özelleştir reddet