JS RegExp
Oddiy ifodalar
Muntazam ifoda - qidiruv sxemasini tashkil etuvchi belgilar ketma-ketligi.
Regex - bu muntazam iboraning umumiy qisqartmasi.
JavaScript RegExp - bu oddiy iboralar bilan ishlash uchun obyekt.
RegExp quyidagilar uchun ishlatiladi:
- Matn qidirish
- Matnni almashtirish
- Matnni tekshirish
Misol
Stringda "w3schools" so‘zini katta-kichik harflarni farqlamasdan qidiring:
let text = "Visit W3Schools";
let n = text.search(/w3schools/i);
Misol tushuntirilishi:
/w3schools/i muntazam ifodadir.
w3schools - bu naqsh (qidiruvda foydalanish uchun).
i - modifikator (qidiruvni katta-kichik harflarga sezgir bo‘lmagan holda o‘zgartiradi).
Oddiy ifoda sintaksisi
/pattern/modifier flags
String usullaridan foydalanish
Muntazam iboralar ko‘pincha string usullari bilan qo‘llaniladi:
| Metod | Tavsif |
|---|---|
| moslik (regex) | Natijalar massivini qaytaradi |
| almashtirish (regex) | Yangi Stringni qaytaradi |
| qidiruv (regex) | Birinchi moslik indeksini qaytaradi |
String match() dan foydalanish
Stringda "W3Schools" ni qidiring:
let text = "Visit W3Schools";
let n = text.match(/W3schools/);
String replace() dan foydalanish
Stringdagi Microsoft-ni W3Schools bilan almashtiring:
let text = "Visit Microsoft!";
let result = text.replace(/Microsoft/i, "W3Schools");
O‘zingiz sinab ko‘ring »
String search() dan foydalanish
Stringda "W3Schools" ni qidiring:
let text = "Visit W3Schools";
let n = text.search(/W3Schools/);
RexExp alternativasi (OR)
Muntazam iborada muqobillik vertikal chiziq belgisi bilan belgilanadi |.
Alternativa | bilan ajratilgan har qanday muqobilga mos keladi.
Misol
Alternativlar uchun global qidiruv (qizil|yashil|ko‘k):
let text = "Black, white, red, green, blue, yellow.";
let result = text.match(/red|green|blue/g);
JavaScript Regex bayroqlari
/pattern/flags
Muntazam ifoda bayroqlari naqshdan qanday foydalanishni o‘zgartirishi mumkin bo‘lgan parametrlardir, masalan, uni katta-kichik harflarga sezgir emas yoki global qilish.
Quyidagilar eng ko‘p tarqalganlaridir:
| Flag | Tavsif |
|---|---|
| /g | Global moslikni bajaradi (barchasini topadi) |
| /i | Performs case-insensitive matching |
| /u | Enables Unicode support (new 2015) |
/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);
/i bayrog‘i (sezgir)
/i bayrog‘i moslikni katta-kichik harflarga sezgir qilmaydi: /abc/i "abc", "AbC", "ABC" ga mos keladi.
Misol
Stringda "w3schools" uchun katta-kichik harflarni hisobga olmaydigan qidiruv:
let text = "Visit W3Schools";
const pattern = /w3schools/i;
let result = text.match(pattern);
Batafsil bilib oling:
RexExp meta-belgilar
// Match words
const pattern = /\w/;
Metabelgilar - bu alohida ma’noga ega bo‘lgan belgilar.
Ular Numberlar, so‘zlar, bo‘shliqlar va boshqalarni moslashtirish uchun ishlatilishi mumkin.
Quyidagilar eng ko‘p tarqalganlaridir:
| Meta | Tavsif |
|---|---|
| \d | Raqamlarga mos keladi |
| \w | So‘zlarga mos keladi |
| \s | Spaces mos keladi |
RegExp \d (Numberlar) Metabelgi
\d metabelgisi raqamlarga mos keladi.
Misol
Stringdagi raqamlarni global qidirish:
let text = "Give 100%!";
const pattern = /\d/g;
let result = text.match(pattern);
RegExp \w (word) metabelgi
\w metabelgisi so‘z belgilariga mos keladi.
So‘z belgisi — a-z, A-Z, 0-9 belgilari, shu jumladan _ (pastki chiziq).
Misol
So‘z belgilari uchun global qidiruv:
let text = "Give 100%!";
const pattern = /\w/g;
let result = text.match(pattern);
O‘zingiz sinab ko‘ring »
Batafsil bilib oling:
JavaScript RegExp kvantifikatorlari
Miqdorlar mos keladigan belgilar yoki iboralar sonini belgilaydi.
Misol
Bir yoki bir nechta “o” belgilaridan keyin “lo” ni qidiring:
const pattern = /lo+/;
+ "bir yoki bir nechta" degan ma’noni anglatadi. Shakl mos keladi:
- lo
- loo
- looo
Bular eng keng tarqalgan kvantlar:
| Quantifier | Tavsif |
|---|---|
| x+ | X kamida bir marta uchraydigan har qanday stringga mos keladi |
| x* | X nol yoki undan ko‘p marta uchraydigan har qanday stringga mos keladi |
| x? | X nol yoki bir marta uchraydigan har qanday stringga mos keladi |
? Miqdor ko‘rsatkichi
x? x ning nolga yoki bitta takrorlanishiga mos keladi.
Misol
Nol yoki bitta “0” belgisidan keyin “1” uchun global qidiruv:
let text = "1, 100 or 1000?";
const pattern = /10?/g;
let result = text.match(pattern);
Batafsil bilib oling:
Muntazam ifoda tasdiqlari
// Match beginning of string
const pattern = /^W3Schools/;
// Match end of string
const pattern = /W3Schools$/;
Tasdiqlar chegaralar va qarashlarga mos keladi:
String chegaralari va so‘z chegaralari.
Ko‘rinishlar: oldinga qarash va orqaga qarash.
Quyidagilar eng ko‘p tarqalganlaridir:
| Sintaksis | Nomi | Tavsif |
|---|---|---|
| ^ | String chegarasi | Stringning boshiga mos keladi |
| $ | String chegarasi | String oxiriga mos keladi |
| \b | So‘z chegarasi | So‘zning boshi yoki oxiriga mos keladi |
| (?=...) | Oldinga qarang | Keyingi stringga mos keladi |
| (?<=...) | Orqaga qarang | Oldingi stringga mos keladi |
RegExp ^ Metabelgi
^ metabelgisi String boshiga mos keladi.
Misollar
String W3Schools bilan boshlanganligini tekshiring:
const pattern = /^W3Schools/;
let text = "W3Schools Tutorial";
let result = pattern.test(text); // true
const pattern = /^W3Schools/;
let text = "Hello W3Schools";
let result = pattern.test(text); // false
RegExp $ meta-belgi
$ meta-belgisi String oxiriga mos keladi.
String W3Schools bilan tugashini tekshiring:
const pattern = /W3Schools$/;
let text = "Hello W3Schools";
let result = pattern.test(text); // true
O‘zingiz sinab ko‘ring »
const pattern = /W3Schools$/;
let text = "W3Schools tutorial";
let result = pattern.test(text); // false
O‘zingiz sinab ko‘ring »
Batafsil bilib oling:
JavaScript RegExp belgilar sinflari
// Match Digits
const pattern = /[0-9]/;
Belgilar sinflari [] kvadrat qavs ichiga olingan belgilardir.
Belgilar sinfi qavs ichidagi to‘plamdagi har qanday belgiga mos keladi.
Quyidagilar eng ko‘p tarqalganlaridir:
| Class | Tavsif |
|---|---|
| [a] | Qavslar ichidagi belgiga mos keladi |
| [abc] | Qavslar ichidagi barcha belgilarga mos keladi |
| [a-z] | a dan z gacha bo‘lgan oraliqdagi barcha belgilarga mos keladi |
| [0-9] | 0 dan 9 gacha bo‘lgan oraliqdagi barcha belgilarga mos keladi |
Misol [0-9]
Stringdagi "0" dan "9" gacha bo‘lgan belgilar uchun global qidiruv:
let text = "More than 1000 times";
const pattern = /[0-9]/g;
let result = text.match(pattern);
Batafsil bilib oling:
JavaScript RegExp belgilar sinflari
JavaScript RegExp meta-belgilar
W3Schools Pathfinder
Yutuqlaringizni kuzating – bu bepul!
