JavaScript RegExp Flaglari
Flaglar — bu regex shablonining ishlash rejimini o'zgartiradigan parametrlar, masalan, katta-kichik harfga befarq yoki global qidiruv rejimini yoqish.
/shablon/flaglarFlaglar jadvali
| Flag | Tavsif |
|---|---|
/d | Pastki satrlarning mosligini aniqlaydi (2022 yangilik). |
/g | Global qidiruv (barcha mosliklarni topadi). |
/i | Katta-kichik harfga befarq (case-insensitive) qidiruv. |
/m | Ko'p qatorli (multiline) moslik. |
/s | . (nuqta) belgisiga yangi qator (\n) belgilarini ham moslashtirish imkonini beradi (2018 yangilik). |
/u | Unicode qo'llab-quvvatlashni yoqadi (2015 yangilik). |
/v | /u flagining yaxshilangan versiyasi — kengaytirilgan Unicode qo'llab-quvvatlash (2025 yangilik). |
/y | "Yopishqoq" (sticky) qidiruv — faqat belgilangan pozitsiyadan qidiradi (2015 yangilik). |
Flag sintaksisi
| Element | Tavsif |
|---|---|
/ | Muntazam ifodaning ochuvchi chegarasi. |
shablon | Muntazam ifoda (qidiruv mezonlari). |
/ | Muntazam ifodaning yopuvchi chegarasi. |
flaglar | Bir yoki bir nechta modifikator flaglar. |
/g flagi (Global)
/g flagi faqat birinchisini emas, barcha mosliklarni topadi.
Misol
Matndagi barcha "is" so'zlarini global qidirish:
let text = "Is this all there is?";
const pattern = /is/g;
let result = text.match(pattern);/i flagi (Case-Insensitive)
/i flagi katta-kichik harfga e'tibor bermasdan qidiradi: /abc/i "abc", "AbC", "ABC" ga mos keladi.
Misol
Matndagi "w3schools" ni katta-kichik harfga befarq qidirish:
let text = "Visit W3Schools";
const pattern = /w3schools/i;
let result = text.match(pattern);/d flagi
/d flagi moslikning boshlanish va tugash pozitsiyasini belgilaydi.
Misol
aa yoki bb bilan boshlanadigan yoki tugaydigan barcha pastki matnlarni topish:
let text = "aaaabb";
const pattern = /(aa)(bb)/d;
let result = text.match(pattern);/s flagi (DotAll / Bir qatorli rejim)
/s flagi . (nuqta) metabelgisiga yangi qator belgilarini (\n) ham moslash imkonini beradi.
Misol
/s flagisiz \n belgisi . (wildcard) ga mos kelmaydi:
let text = "Line\nLine.";
const pattern = /Line./gs;
let result = text.match(pattern);/y flagi (Sticky — Yopishqoq)
/y flagi "yopishqoq" qidiruv amalga oshiradi — u lastIndex xususiyatidan boshlab qidiradi. Moslik faqat oxirgi moslik tugagan nuqtadan boshlanadi.
Misol
let text = "abc def ghi";
const pattern = /\w+/y;
// 4-pozitsiyadan moslikni boshlash
pattern.lastIndex = 4;
let result = text.match(pattern);/y flagi o'rnatilmagan bo'lsa, lastIndex o'zgartirish ishlamaydi:
let text = "abc def ghi";
const pattern = /\w+/;
// 4-pozitsiyadan moslikni boshlash — bu ishlamaydi
pattern.lastIndex = 4;
let result = text.match(pattern);Eslatma
Yuqoridagi misolda \w+ regex metabelgisi ishlatilgan. \w+ "istalgan so'zga mos kelish" ma'nosini anglatadi.
/u flagi (Unicode)
/u flagi muntazam ifodada to'liq Unicode qo'llab-quvvatlashni yoqadi.
Odatda, JavaScript RegExp 4-baytli Unicode belgilarni (emoji yoki kamdan-kam belgilar) ikkita alohida 2-baytli "surrogat" birlik sifatida ko'radi. /u flagi shablonni Unicode kod nuqtalari ketma-ketligi sifatida ko'rib, BMP (Basic Multilingual Plane) doirasidan tashqaridagi belgilarni to'g'ri boshqaradi.
Misol
let text = "𠀀";
const pattern = /\u{04DC0}/u;
// true qaytaradi:
let result = pattern.test(text);/u flagisiz muntazam ifodalar "Unicode-dan xabardor" bo'lmaydi:
let text = "𠀀";
const pattern = /\u{04DC0}/;
// false qaytaradi:
let result = pattern.test(text);Eslatma
JavaScript 2025 /v flagini /u flagining "yaxshilangan versiyasi" sifatida taqdim etdi. /v flagi qo'shimcha Unicode imkoniyatlarini yoqadi.
/v flagi (Unicode Sets)
/v flagi — /u flagining yaxshilangan versiyasi bo'lib, kengaytirilgan Unicode qo'llab-quvvatlashni ta'minlaydi.
Yangi imkoniyatlar:
\pescape ketma-ketligi faqat belgilarga emas, satrlarga ham mos keladi.- Belgilar sinfi kesishish (intersection), birlashma (union) va ayirish (subtraction) sintaksislarini qo'llab-quvvatlaydi, shuningdek ko'p belgilik Unicode belgilarga mos keladi.
Misol
let text = "Hello 😄";
const pattern = /\p{Emoji}/v;
// true qaytaradi:
let result = pattern.test(text);/v flagisiz muntazam ifodalar "Unicode-dan xabardor" bo'lmaydi:
let text = "Hello 😄";
const pattern = /\p{Emoji}/;
// false qaytaradi:
let result = pattern.test(text);Guruh modifikatorlari (?flag)
(?flag) sintaksisi — bu guruh modifikatori (inline flag modifier). U flaglarni butun shablonga emas, balki shablonning bir qismiga qo'llash imkonini beradi.
(?flaglar:shablon) — flaglarni faqat guruhdagi shablon uchun yoqadi.
Misol
i flagi faqat W3Schools qismi uchun yoqilgan:
let text = "W3Schools tutorials.";
const pattern = /(?i:W3Schools) tutorials/;
// true qaytaradi:
let result = pattern.test(text);i flagi faqat W3Schools qismiga ta'sir qiladi, "tutorials" uchun emas:
let text = "W3Schools Tutorials.";
const pattern = /(?i:W3Schools) tutorials/;
// false qaytaradi (tutorials katta harf bilan):
let result = pattern.test(text);Flag xususiyatlari (Properties)
| Xususiyat | Tavsif |
|---|---|
global | /g flagi o'rnatilgan bo'lsa true qaytaradi. |
hasIndices | /d flagi o'rnatilgan bo'lsa true qaytaradi. |
ignoreCase | /i flagi o'rnatilgan bo'lsa true qaytaradi. |
multiline | /m flagi o'rnatilgan bo'lsa true qaytaradi. |
dotAll | /s flagi o'rnatilgan bo'lsa true qaytaradi. |
sticky | /y flagi o'rnatilgan bo'lsa true qaytaradi. |
unicode | /u flagi o'rnatilgan bo'lsa true qaytaradi. |
unicodeSets | /v flagi o'rnatilgan bo'lsa true qaytaradi. |
dotAll xususiyati
const pattern = /W3Schools/s;
let result = pattern.dotAll; // trueglobal xususiyati
const pattern = /W3Schools/g;
let result = pattern.global; // truehasIndices xususiyati
const pattern = /W3Schools/d;
let result = pattern.hasIndices; // trueignoreCase xususiyati
const pattern = /W3Schools/i;
let result = pattern.ignoreCase; // truemultiline xususiyati
const pattern = /W3Schools/m;
let result = pattern.multiline; // truesticky xususiyati
const pattern = /W3Schools/y;
let result = pattern.sticky; // trueunicode xususiyati
let text = "𠀀";
const pattern = /\u{04DC0}/u;
let result = pattern.unicode; // trueunicodeSets xususiyati
let text = "Hello 😄";
const pattern = /\p{Emoji}/v;
let result = pattern.unicodeSets; // trueMuntazam ifoda metodlari
Muntazam ifodalar yordamida qidirish va almashtirish turli metodlar bilan amalga oshiriladi.
String Metodlari
| Metod | Tavsif |
|---|---|
match(regex) | Natijalar massivini qaytaradi. |
matchAll(regex) | Natijalar iteratorini qaytaradi. |
replace(regex) | Yangi satr qaytaradi. |
replaceAll(regex) | Yangi satr qaytaradi. |
search(regex) | Birinchi moslik indeksini qaytaradi. |
split(regex) | Natijalar massivini qaytaradi. |
RegExp Metodlari
| Metod | Tavsif |
|---|---|
regex.exec() | Natijalar iteratorini qaytaradi. |
regex.test() | true yoki false qaytaradi. |
