⊗jsSpREESCh 99 of 294 menu

JavaScript regular ifodalarda maxsus belgilarni ekranlash

Faraz qilaylik, biz maxsus belgi o‘zini o‘zi anglatishini xohlaymiz. Buning uchun uni teskari chiziq yordamida ekranlash kerak. Keling, misollar orqali ko‘rib chiqaylik.

Misol

Quyidagi misolda regular ifoda muallifi qidiruv shabloni şunday ko‘rinishga ega bo‘lishini xohlagan: harf 'a', keyin plus '+', keyin harf 'x'. Biroq, kod muallifi '+' belgisini ekranlamagan va shuning uchun qidiruv shabloni aslida şunday ko‘rinadi: harf 'a' bir yoki bir necha marta, keyin harf 'x':

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

Natijada o‘zgaruvchiga quyidagi yoziladi:

'a+x ! ! !'

Misol

Endi esa muallif plusni teskari chiziq bilan ekranladi. Endi qidiruv shabloni xohlagandek ko‘rinadi: harf 'a', keyin plus '+', keyin harf 'x'.

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

Natijada o‘zgaruvchiga quyidagi yoziladi:

'! ax aax aaax'

Misol

Ushbu misolda shablon şunday ko‘rinadi: harf 'a', keyin nuqta '.', keyin harf 'x':

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

Natijada o‘zgaruvchiga quyidagi yoziladi:

'! abx azx'

Misol

Quyidagi misolda muallif nuqtani ekranlashni unutgan va regular ifoda barcha pastki qatorlarni qamrab oldi, chunki ekranlanmagan nuqta har qanday belgini anglatadi:

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

Natijada o‘zgaruvchiga quyidagi yoziladi:

'! ! !'

Eslatma

Diqqat qiling, agar siz nuqta uchun teskari chiziqni untasangiz (u o‘zini o‘zi anglatishi kerak bo‘lsa) - buni sezmasligingiz ham mumkin:

'a.x'.replace(/a.x/g, '!'); // '!' ni qaytaradi, xohlagandek

Vizual olarak to‘g‘ri ishlaydi (chunki nuqta har qanday belgini, shu jumladan oddiy nuqta '.' ni ham anglatadi). Lekin agar almashtirishlar bajarilayotgan qatorni o‘zgartirsak - xatomizni ko‘ramiz:

'a.x abx azx'.replace(/a.x/g, '!'); // '! ! !' ni qaytaradi, kutayotgan edik '! abx azx'

Maxsus belgilar va oddiy belgilar ro‘yxati

Agar oddiy belgini ekranlasangiz - hech qanday yomon narsa bo‘lmaydi - u baribir o‘zini anglatadi. Istisno - raqamlar, ularni ekranlab bo‘lmaydi.

Ko‘pincha shubha paydo bo‘ladi, ma'lum bir belgi maxsusmi yoki yo‘qmi. Ba'zilar hattoki barcha shubhali belgilarni ketma-ket ekranlashgacha boradi. Biroq, bu yomon amaliyotdir (regular ifodani teskari chiziqlar bilan to‘ldiradi).

Maxsus belgilar hisoblanadi: $ ^ . * + ? \ / {} [] () |

Maxsus belgilar hisoblanmaydi: @ : , ' " ; - _ = < > % # ~ `& !

Amaliy vazifalar

Berilgan qator:

let str = 'a.a aba aea';

'a.a' qatorini topadigan, qolganlarini qamramaydigan regular ifoda yozing.

Berilgan qator:

let str = '2+3 223 2223';

'2+3' qatorini topadigan, qolganlarini qamramaydigan regular ifoda yozing.

Berilgan qator:

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

'2+3', '2++3', '2+++3' qatorlarini topadigan, qolganlarini qamramaydigan regular ifoda yozing (+ har qanday sonda bo‘lishi mumkin).

Berilgan qator:

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

'23', '2+3', '2++3', '2+++3' qatorlarini topadigan, qolganlarini qamramaydigan regular ifoda yozing.

Berilgan qator:

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

'*q+', '*qq+', '*qqq+' qatorlarini topadigan, qolganlarini qamramaydigan regular ifoda yozing.

Berilgan qator:

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

Kvadrat qavs ichidagi qatorlarni topadigan va ularni '!' ga almashtiradigan regular ifoda yozing.

Oʻzbek
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекTiếng Việt
Biz sayt ishlashi, tahlil qilish va shaxsiylashtirish uchun cookie-fayllardan foydalanamiz. Ma'lumotlarni qayta ishlash Maxfiylik siyosatiga muvofiq amalga oshiriladi.
hammasini qabul qilish sozlash rad etish