⊗jsSpREESCh 99 of 294 menu

JavaScript Düzenli İfadelerde Özel Karakterlerin Kaçışı

Diyelim ki, bir özel karakterin kendisini temsil etmesini istiyoruz. Bunun için ters eğik çizgi kullanarak kaçış yapmamız gerekir. Örneklerle görelim.

Örnek

Aşağıdaki örnekte, düzenli ifadeyi yazan kişi, arama kalıbının harf 'a', ardından artı '+', ardından harf 'x' şeklinde olmasını istemişti. Ancak, kod yazarı '+' karakterini kaçış yapmadığı için arama kalıbı aslında şu şekildedir: harf 'a' bir veya daha fazla kez, sonra harf 'x':

let str = 'a+x ax aax aaax'; let res = str.replace(/a+x/g, '!');

Sonuç olarak değişkene şu yazılacaktır:

'a+x ! ! !'

Örnek

Şimdi ise yazar artı işaretini ters eğik çizgi ile kaçış yaptı. Artık arama kalıbı olması gerektiği gibi görünüyor: harf 'a', ardından artı '+', ardından harf 'x'.

let str = 'a+x ax aax aaax'; let res = str.replace(/a\+x/g, '!');

Sonuç olarak değişkene şu yazılacaktır:

'! ax aax aaax'

Örnek

Bu örnekte, kalıp şu şekildedir: harf 'a', ardından nokta '.', ardından harf 'x':

let str = 'a.x abx azx'; let res = str.replace(/a\.x/g, '!');

Sonuç olarak değişkene şu yazılacaktır:

'! abx azx'

Örnek

Aşağıdaki örnekte yazar noktayı kaçış yapmayı unuttu ve düzenli ifade tüm alt dizeleri yakaladı, çünkü kaçış yapılmamış nokta herhangi bir karakteri temsil eder:

let str = 'a.x abx azx'; let res = str.replace(/a.x/g, '!');

Sonuç olarak değişkene şu yazılacaktır:

'! ! !'

Not

Bir nokta için ters eğik çizgi kullanmayı unutursanız (kendisini temsil etmesi gerektiğinde) - bunu fark etmeyebilirsiniz bile:

'a.x'.replace(/a.x/g, '!'); // istediğimiz gibi '!' döndürür

Görsel olarak doğru çalışıyor (çünkü nokta herhangi bir karakteri temsil eder, normal bir nokta '.' dahil). Ancak değiştirmelerin yapıldığı dizgiyi değiştirirsek, hatamızı göreceğiz:

'a.x abx azx'.replace(/a.x/g, '!'); // '! ! !' döndürür, beklenen '! abx azx' idi

Özel karakterlerin ve normal karakterlerin listesi

Normal bir karakteri kaçış yaparsanız - kötü bir şey olmaz - yine kendisini temsil edecektir. İstisna - rakamlar, onlar kaçış yapılamaz.

Sık sık, belirli bir karakterin özel olup olmadığı konusunda şüphe doğar. Bazıları şüpheli tüm karakterleri sırayla kaçış yapacak kadar ileri gider. Ancak, bu kötü bir uygulamadır (düzenli ifadeyi ters eğik çizgilerle kirletir).

Özel karakterler şunlardır: $ ^ . * + ? \ / {} [] () |

Özel karakter olmayanlar: @ : , ' " ; - _ = < > % # ~ `& !

Pratik Görevler

Bir dizge verildi:

let str = 'a.a aba aea';

'a.a' dizgesini bulan, diğerlerini yakalamayan bir düzenli ifade yazın.

Bir dizge verildi:

let str = '2+3 223 2223';

'2+3' dizgesini bulan, diğerlerini yakalamayan bir düzenli ifade yazın.

Bir dizge verildi:

let str = '23 2+3 2++3 2+++3 345 567';

'2+3', '2++3', '2+++3' dizgelerini bulan, diğerlerini yakalamayan bir düzenli ifade yazın (+ herhangi bir sayıda olabilir).

Bir dizge verildi:

let str = '23 2+3 2++3 2+++3 445 677';

'23', '2+3', '2++3', '2+++3' dizgelerini bulan, diğerlerini yakalamayan bir düzenli ifade yazın.

Bir dizge verildi:

let str = '*+ *q+ *qq+ *qqq+ *qqq qqq+';

'*q+', '*qq+', '*qqq+' dizgelerini bulan, diğerlerini yakalamayan bir düzenli ifade yazın.

Bir dizge verildi:

let str = '[abc] {abc} abc (abc) [abc]';

Köşeli parantezler içindeki dizgeleri bulup '!' ile değiştiren bir düzenli ifade yazın.

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