darsga qaytish

HTML ranglari uchun Regexp

#ABCDEF sifatida yozilgan HTML ranglarini qidirish uchun regexp yarating: avval # va keyin 6 o’n oltilik belgilar.

Misol:

let regexp = /...sizning regexp.../;

let str =
  "color:#121212; background-color:#AA00ef bad-colors:f#fddee #fd2 #12345678";

alert(str.match(regexp)); // #121212,#AA00ef

P.S. Bu vazifada bizga #123 yoki rgb(1,2,3) va hokazo kabi boshqa rang formatlari kerak emas.

Biz # dan keyin 6 o’n oltilik belgini izlashimiz kerak.

O‘n oltilik belgini [0-9a-fA-F] deb ta’riflash mumkin. Yoki i bayrog’idan foydalansak, shunchaki [0-9a-f].

Keyin {6} kvantifikatori yordamida ulardan 6 tasini izlashimiz mumkin.

Natijada, bizda regexp mavjud: /#[a-f0-9]{6}/gi.

let regexp = /#[a-f0-9]{6}/gi;

let str = "color:#121212; background-color:#AA00ef bad-colors:f#fddee #fd2";

alert(str.match(regexp)); // #121212,#AA00ef

Muammo shundaki, u rangni uzunroq ketma-ketlikda topadi:

alert("#12345678".match(/#[a-f0-9]{6}/gi)); // #123456

Buni tuzatish uchun oxiriga \b qo’shishimiz mumkin:

// rang
alert("#123456".match(/#[a-f0-9]{6}\b/gi)); // #123456

// rang emas
alert("#12345678".match(/#[a-f0-9]{6}\b/gi)); // null