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