⊗jsSpREESCh 99 of 294 menu

JavaScript-də RegExp xüsusi simvolların ekranlanması

Tutaq ki, biz istəyirik ki, xüsusi simvol özünü ifadə etsin. Bunun üçün onu əks sləş ilə ekranlamaq lazımdır. Gəlin nümunələrə baxaq.

Nümunə

Aşağıdakı nümunədə regex-in müəllifi axtarış şablonunun belə görünməsini istəyirdi: hərf 'a', sonra plus '+', sonra hərf 'x'. Lakin, kodun müəllifi '+' simvolunu ekranlamayıb və buna görə də axtarış şablonu əslində belə görünür: hərf 'a' bir və ya daha çox dəfə, sonra hərf 'x':

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

Nəticədə dəyişənə aşağıdakı yazılacaq:

'a+x ! ! !'

Nümunə

İndi isə müəllif plusu əks sləş ilə ekranlayıb. İndi axtarış şablonu lazım olan kimi görünür: hərf 'a', sonra plus '+', sonra hərf 'x'.

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

Nəticədə dəyişənə aşağıdakı yazılacaq:

'! ax aax aaax'

Nümunə

Bu nümunədə şablon belə görünür: hərf 'a', sonra nöqtə '.', sonra hərf 'x':

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

Nəticədə dəyişənə aşağıdakı yazılacaq:

'! abx azx'

Nümunə

Aşağıdakı nümunədə müəllif nöqtəni ekranlamağı unudub və regex bütün alt sətirləri tutdu, çünki ekranlanmamış nöqtə hər hansı simvolu ifadə edir:

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

Nəticədə dəyişənə aşağıdakı yazılacaq:

'! ! !'

Qeyd

Diqqət edin ki, əgər siz nöqtə üçün əks sləşi unutsanız (o, özünü ifadə etməlidir) - bunu heç hiss etməyə bilərsiniz:

'a.x'.replace(/a.x/g, '!'); // '!' qaytaracaq, istədiyimiz kimi

Vizual olaraq düzgün işləyir (çünki nöqtə hər hansı simvolu, o cümlədən adi nöqtəni '.' ifadə edir). Lakin əgər dəyişdirsək əvəz olunan sətiri - biz səhvimizi görəcəyik:

'a.x abx azx'.replace(/a.x/g, '!'); // '! ! !' qaytaracaq, gözlənilirdi '! abx azx'

Xüsusi simvolların və adi simvolların siyahısı

Əgər adi simvolu ekranlasanız - heç bir pis şey olmaz - o yenə də özünü ifadə edəcək. İstisna - rəqəmlər, onları ekranlamaq olmaz.

Tez-tez şübhə yaranır, verilmiş simvolun xüsusi olub-olmadığı barədə. Bəziləri o həddə çatırlar ki, şübhəli simvolları ekranlayırlar. Lakin, bu pis təcrübədir (regex-i əks sləşlərlə çirkləndirir).

Xüsusi simvollardır: $ ^ . * + ? \ / {} [] () |

Xüsusi simvol deyillər: @ : , ' " ; - _ = < > % # ~ `& !

Praktiki tapşırıqlar

Sətir verilib:

let str = 'a.a aba aea';

'a.a' sətirini tapacaq, qalanlarını tutmayacaq regex yazın.

Sətir verilib:

let str = '2+3 223 2223';

'2+3' sətirini tapacaq, qalanlarını tutmayacaq regex yazın.

Sətir verilib:

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

'2+3', '2++3', '2+++3' sətirlərini tapacaq, qalanlarını tutmayacaq regex yazın (+ istənilən sayda ola bilər).

Sətir verilib:

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

'23', '2+3', '2++3', '2+++3' sətirlərini tapacaq, qalanlarını tutmayacaq regex yazın.

Sətir verilib:

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

'*q+', '*qq+', '*qqq+' sətirlərini tapacaq, qalanlarını tutmayacaq regex yazın.

Sətir verilib:

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

Kvadrat mötərizələrdə olan sətirləri tapacaq və onları '!' ilə əvəz edəcək regex yazın.

Azərbaycan
AfrikaansБългарскиবাংলাБеларускаяČ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
Biz saytin işi, analitika və fərdiləşdirmə üçün cookie istifadə edirik. Məlumatların emalı Məxfilik Siyasəti əsasında həyata keçirilir.
hamısını qəbul et konfiqurasiya et rədd et