Skip to content

JavaScript RegExp Flaglari

Flaglar — bu regex shablonining ishlash rejimini o'zgartiradigan parametrlar, masalan, katta-kichik harfga befarq yoki global qidiruv rejimini yoqish.

/shablon/flaglar

Flaglar jadvali

FlagTavsif
/dPastki satrlarning mosligini aniqlaydi (2022 yangilik).
/gGlobal qidiruv (barcha mosliklarni topadi).
/iKatta-kichik harfga befarq (case-insensitive) qidiruv.
/mKo'p qatorli (multiline) moslik.
/s. (nuqta) belgisiga yangi qator (\n) belgilarini ham moslashtirish imkonini beradi (2018 yangilik).
/uUnicode 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

ElementTavsif
/Muntazam ifodaning ochuvchi chegarasi.
shablonMuntazam ifoda (qidiruv mezonlari).
/Muntazam ifodaning yopuvchi chegarasi.
flaglarBir yoki bir nechta modifikator flaglar.

/g flagi (Global)

/g flagi faqat birinchisini emas, barcha mosliklarni topadi.

Misol

Matndagi barcha "is" so'zlarini global qidirish:

js
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:

js
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:

js
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:

js
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

js
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:

js
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

js
let text = "𠀀";
const pattern = /\u{04DC0}/u;

// true qaytaradi:
let result = pattern.test(text);

/u flagisiz muntazam ifodalar "Unicode-dan xabardor" bo'lmaydi:

js
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:

  • \p escape 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

js
let text = "Hello 😄";
const pattern = /\p{Emoji}/v;

// true qaytaradi:
let result = pattern.test(text);

/v flagisiz muntazam ifodalar "Unicode-dan xabardor" bo'lmaydi:

js
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:

js
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:

js
let text = "W3Schools Tutorials.";
const pattern = /(?i:W3Schools) tutorials/;

// false qaytaradi (tutorials katta harf bilan):
let result = pattern.test(text);

Flag xususiyatlari (Properties)

XususiyatTavsif
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

js
const pattern = /W3Schools/s;
let result = pattern.dotAll; // true

global xususiyati

js
const pattern = /W3Schools/g;
let result = pattern.global; // true

hasIndices xususiyati

js
const pattern = /W3Schools/d;
let result = pattern.hasIndices; // true

ignoreCase xususiyati

js
const pattern = /W3Schools/i;
let result = pattern.ignoreCase; // true

multiline xususiyati

js
const pattern = /W3Schools/m;
let result = pattern.multiline; // true

sticky xususiyati

js
const pattern = /W3Schools/y;
let result = pattern.sticky; // true

unicode xususiyati

js
let text = "𠀀";
const pattern = /\u{04DC0}/u;
let result = pattern.unicode; // true

unicodeSets xususiyati

js
let text = "Hello 😄";
const pattern = /\p{Emoji}/v;
let result = pattern.unicodeSets; // true

Muntazam ifoda metodlari

Muntazam ifodalar yordamida qidirish va almashtirish turli metodlar bilan amalga oshiriladi.

String Metodlari

MetodTavsif
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

MetodTavsif
regex.exec()Natijalar iteratorini qaytaradi.
regex.test()true yoki false qaytaradi.