JS RegExp bayroqlari
RegExp modifikator bayroqlari
Bayroqlar regex naqshini qanday ishlatilishini o‘zgartirishi mumkin bo‘lgan parametrlardir, masalan, uni katta-kichik harflarga sezgir emas yoki global qilish.
/pattern/flags
JavaScript Regex bayroqlari
2025 yil iyul oyida qayta ko‘rib chiqilgan
| Flag | Tavsif |
|---|---|
| /d | Performs substring matches (new 2022) |
| /g | Global moslikni bajaradi (barchasini topadi) |
| /i | Performs case-insensitive matching |
| /m | Performs multiline matching |
| /s | . (nuqta) belgisining qator tugash belgilariga ham mos kelishiga ruxsat beradi (2018-yilda yangi) |
| /u | Enables Unicode support (new 2015) |
| /v | Unicode’ni yaxshiroq qo‘llab-quvvatlash uchun /u bayrog‘ining takomillashtirilgan varianti (2025-yilda yangi) |
| /y | "Yopishqoq" (sticky) qidiruvni bajaradi (2015-yilda yangi) |
Bayroq sintaksisi: /pattern/flags
| / | Muntazam ifodaning ochuvchi ajratuvchisi |
| pattern | Muntazam ifoda (qidiruv mezoni) |
| / | Muntazam ifodaning yopuvchi ajratuvchisi |
| flags | Bir yoki bir nechta modifikator bayroqlari |
RegExp /g bayrog‘i (global)
/g bayrog‘i birinchisiga emas, balki naqshning barcha holatlariga mos keladi.
Misol
Stringda "is" uchun global qidiruv:
let text = "Is this all there is?";
const pattern = /is/g;
let result = text.match(pattern);
RegExp /i bayrog‘i (registrga befarq)
/i bayrog‘i moslikni katta-kichik harflarga befarq qiladi: /abc/i "abc", "AbC", "ABC" ga mos keladi.
Misol
Stringda "w3schools" uchun katta-kichik harflarni hisobga olmaydigan qidiruv:
let text = "Visit W3Schools";
const pattern = /is/g;
let result = text.match(pattern);
RegExp /d bayrog‘i
/d bayrog‘i (Indices bayrog‘i) muntazam ifoda guruhlari ushlagan qism stringlarning boshlanish va tugash pozitsiyalarini topish uchun ishlatiladi.
Bu regex mosligini o‘zgartirmaydi. Natija haqida metadata beradi.
exec() yoki match() tomonidan qaytarilgan massiv
qo‘shimcha indekslar xususiyatini o‘z ichiga oladi: Muayyan tortishish guruhining [start, end] indeksini ifodalovchi juftliklar massivi.
Misol
aa yoki bb bilan boshlanadigan yoki tugaydigan har bir pastki matnni moslang:
let text = "aaaabb";
const pattern = /(aa)(bb)/d;
let result = text.match(pattern);
let indexes = result.indices;
O‘zingiz sinab ko‘ring »
HasIndices xususiyatidan foydalanib, regexda /d bayrog‘i borligini tekshirishingiz mumkin.
RegExp /s bayrog‘i (bir qatorli/DotAll)
/s bayrog‘i . (nuqta) metabelgi boshqa har qanday belgidan tashqari yangi qator belgilariga (\n) mos keladi.
Misol
/s bayrog‘isiz \n . (istalgan belgi) ga mos kelmaydi:
let text = "Line\nLine.";
const pattern = /Line./gs;
let result = text.match(pattern);
O‘zingiz sinab ko‘ring »
RegExp /m bayrog‘i (ko‘p qatorli)
/m (ko‘p qatorli) bayrog‘i ko‘p qatorli moslikni belgilaydi.
Misol
Stringdagi har bir qator boshida "is" uchun ko‘p qatorli qidiruvni bajaring:
let text = `Is this
all there
is`
let pattern = /^is/m;
O‘zingiz sinab ko‘ring »
/m bayrog‘i ^ va $ ning harakatiga ta’sir qiladi.
^ string boshida moslikni belgilaydi.
$ string oxiridagi moslikni belgilaydi.
/m o‘rnatilganda ^ va $ butun stringning boshi va oxiridan tashqari, ko‘p qatorli stringdagi har bir qatorning boshi va oxiriga ham mos keladi.
RegExp /y bayrog‘i (sticky):
/y bayrog‘i RegExp obyektining lastIndex xususiyatidan "yopishqoq" qidiruvni amalga oshiradi.
/y bayrog‘i o‘yinni oxirgi o‘yin tugagan joyda boshlash imkonini beradi.
Misollar
let text = "abc def ghi";
const pattern = /\w+/y;
// Start match from position 4
pattern.lastIndex = 4;
let result = text.match(pattern);
O‘zingiz sinab ko‘ring »
/y bayrog‘i pozitsiyadan mos kelishiga ruxsat berish uchun o‘rnatilishi kerak.
Bu ishlamaydi:
let text = "abc def ghi";
const pattern = /\w+/;
// Start match from position 4
pattern.lastIndex = 4;
let result = text.match(pattern);
O‘zingiz sinab ko‘ring »
Yuqoridagi misolda \w regex metabelgisi ishlatilgan
/\w/ ning ma’nosi "(alfanumerik) so‘z belgisini moslashtirish".
/\w+/ ma’nosi “bir yoki bir nechta so‘z belgilarini moslashtirish”dir.
Keyingi boblarda metabelgilar haqida ko‘proq bilib olasiz.
RegExp /u bayrog‘i (Unicode)
/u bayrog‘i muntazam ifodada to‘liq Unicode qo‘llab-quvvatlash imkonini beradi.
Odatiy bo‘lib, JavaScript RegExp 4 baytli Unicode belgilarini (masalan, kulgichlar yoki kamroq tarqalgan belgilar) ikkita alohida 2 baytli "surrogat" kod birligi sifatida ko‘radi.
/u bayrog‘i shablonni Unicode kod nuqtalari ketma-ketligi sifatida ko‘radi, bu Asosiy ko‘p tilli tekislik (BMP) dan tashqaridagi belgilarni to‘g‘ri qayta ishlash uchun muhim.
Misol
let text = "䷀";
const pattern = /\u{04DC0}/u;
// Returns true:
let result = pattern.test(text);
O‘zingiz sinab ko‘ring »
/u bayrog‘isiz oddiy iboralar "Unicode-aware" emas.
Misol
let text = "䷀";
const pattern = /\u{04DC0}/;
// Returns false:
let result = pattern.test(text);
O‘zingiz sinab ko‘ring »
JavaScript 2025 /u bayrog‘ini "yangilash" sifatida /v bayrog‘ini taqdim etdi.
/v bayrog‘i Unicode bilan bog‘liq qo‘shimcha imkoniyatlarni yoqadi.
RegExp /v bayrog‘i (Unicode to‘plamlari)
/v bayrog‘i Unicode-ni yaxshiroq qo‘llab-quvvatlash uchun /u bayrog‘iga yangilanishdir.
U Unicode bilan bog‘liq qo‘shimcha imkoniyatlarni yoqadi.
Yangi imkoniyatlar:
- \p ekranlash ketma-ketligi faqat belgilarga emas, stringlarga ham mos keladi.
- Belgilar sinfi kesishish, birlashtirish va ayirish sintaksiklariga, shuningdek, bir nechta Unicode belgilariga mos kelishiga ruxsat berish uchun yangilanadi.
Misol
let text = "Hello 😄";
const pattern = /\p{Emoji}/v;
// Returns true:
let result = pattern.test(text);
O‘zingiz sinab ko‘ring »
/v bayrog‘isiz muntazam iboralar "Unicode-aware" emas.
Misol
let text = "Hello 😄";
const pattern = /\p{Emoji}/;
// Returns false:
let result = pattern.test(text);
O‘zingiz sinab ko‘ring »
RegExp guruh modifikatorlari (?flag)
(?bayroq) sintaksisi guruh o‘zgartiruvchisi (inline bayroq o‘zgartiruvchisi).
U bayroqlarni butun naqshga emas, balki naqshning bir qismiga o‘zgartirish imkonini beradi.
(?flags:pattern) bayroqlarni faqat guruhdagi naqsh uchun yoqadi.
Misol
i bayrog‘i faqat naqshning W3Schools qismi uchun yoqilgan.
let text = "W3Schools tutorials.";
const pattern = /(?i:WShools) tutorials/;
// Returns true:
let result = pattern.test(text);
O‘zingiz sinab ko‘ring »
i bayrog‘i faqat naqshning W3Schools qismi uchun yoqilgan.
let text = "W3Schools Tutorials.";
const pattern = /(?i:W3Sshools) tutorials/;
// Returns false:
let result = pattern.test(text);
O‘zingiz sinab ko‘ring »
JavaScript Regex bayroq xususiyatlari
2025 yil iyul oyida qayta ko‘rib chiqilgan
| Xususiyat | Tavsif |
|---|---|
| global | /g bayrog‘i o‘rnatilgan bo‘lsa, true qaytaradi |
| hasIndices | /d bayrog‘i o‘rnatilgan bo‘lsa, true qaytaradi |
| ignoreCase | /i bayrog‘i o‘rnatilgan bo‘lsa, true qaytaradi |
| multiline | /m bayrog‘i o‘rnatilgan bo‘lsa, true qaytaradi |
| dotAll | Agar /s bayrog‘i o‘rnatilgan bo‘lsa, true qaytaradi |
| sticky | Agar /y bayrog‘i o‘rnatilgan bo‘lsa, true qaytaradi |
| unicode | Agar /u bayrog‘i o‘rnatilgan bo‘lsa, true qaytaradi |
| unicodeSets | /v bayrog‘i o‘rnatilgan bo‘lsa, true qaytaradi |
dotAll xususiyati
dotAll xususiyati trueni qaytaradi
/s bayrog‘i o‘rnatilgan bo‘lsa.
global xususiyati
global xususiyati trueni qaytaradi
/g bayrog‘i o‘rnatilgan bo‘lsa.
hasIndices xususiyati
hasIndices xususiyati trueni qaytaradi
agar /d bayrog‘i o‘rnatilgan bo‘lsa.
ignoreCase xususiyati
ignoreCase xususiyati trueni qaytaradi
/i bayrog‘i o‘rnatilgan bo‘lsa.
Ko‘p qatorli xususiyat
multiline xususiyati trueni qaytaradi
/m bayrog‘i o‘rnatilgan bo‘lsa.
sticky xususiyati
sticky xususiyati trueni qaytaradi
/y bayrog‘i o‘rnatilgan bo‘lsa.
unicode xususiyati
unicode xususiyati trueni qaytaradi
agar /u bayrog‘i o‘rnatilgan bo‘lsa.
Misol
let text = "䷀";
const pattern = /\u{04DC0}/u;
let result = pattern.unicode;
O‘zingiz sinab ko‘ring »
unicodeSets xususiyati
unicodeSets xususiyati trueni qaytaradi
agar /v bayrog‘i o‘rnatilgan bo‘lsa.
Misol
let text = "Hello 😄";
const pattern = /\p{Emoji}/v;
let result = pattern.unicodeSets;
O‘zingiz sinab ko‘ring »
Muntazam ifoda metodlari
Muntazam ifodalarni qidirish va almashtirish turli usullar bilan amalga oshirilishi mumkin.
Quyidagilar eng ko‘p tarqalganlaridir:
String metodlari
| Metod | Tavsif |
|---|---|
| moslik (regex) | Natijalar massivini qaytaradi |
| matchAll(regex) | Natijalarning iteratorini qaytaradi |
| almashtirish (regex) | Yangi Stringni qaytaradi |
| replaceAll(regex) | Yangi Stringni qaytaradi |
| qidiruv (regex) | Birinchi moslik indeksini qaytaradi |
| split(regex) | Natijalar massivini qaytaradi |
RegExp metodlari
| Metod | Tavsif |
|---|---|
| regex.exec() | Natijalarning iteratorini qaytaradi |
| regex.test() | true yoki false qaytaradi |
Shuningdek qarang:
JavaScript RegExp belgilar sinflari
JavaScript RegExp meta-belgilar
W3Schools Pathfinder
Yutuqlaringizni kuzating – bu bepul!
