JS RegExp

ULASHISH

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);

O‘zingiz sinab ko‘ring »

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:

MetodTavsif
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/);

O‘zingiz sinab ko‘ring »

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/);

O‘zingiz sinab ko‘ring »


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);

O‘zingiz sinab ko‘ring »


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);

O‘zingiz sinab ko‘ring »


/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);

O‘zingiz sinab ko‘ring »

Batafsil bilib oling:

JavaScript RegExp bayroqlari


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:

MetaTavsif
\dRaqamlarga mos keladi
\wSo‘zlarga mos keladi
\sSpaces 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);

O‘zingiz sinab ko‘ring »


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 meta-belgilari


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);

O‘zingiz sinab ko‘ring »

Batafsil bilib oling:

JavaScript RegExp kvantifikatorlari



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:

SintaksisNomiTavsif
^String chegarasiStringning boshiga mos keladi
$String chegarasiString oxiriga mos keladi
\bSo‘z chegarasiSo‘zning boshi yoki oxiriga mos keladi
(?=...)Oldinga qarangKeyingi stringga mos keladi
(?<=...)Orqaga qarangOldingi 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

O‘zingiz sinab ko‘ring »

const pattern = /^W3Schools/;
let text = "Hello W3Schools";

let result = pattern.test(text); // false

O‘zingiz sinab ko‘ring »


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 tasdiqlari


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);

O‘zingiz sinab ko‘ring »


W3Schools Pathfinder

Yutuqlaringizni kuzating – bu bepul!