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