#abc yoki #abcdef formatida rangni toping
#abc yoki #abcdef formatida ranglarga mos keladigan RegExp yozing. Ya’ni: # keyin 3 yoki 6 o’n oltilik raqam.
Masalan:
let regexp = /sizning regepxiyingiz/g;
let str = "color: #3f3; background-color: #AA00ef; and: #abcd";
alert(str.match(regexp)); // #3f3 #AA00ef
P.S. Bu aniq 3 yoki 6 hex raqam bo’lishi kerak. #abcd kabi 4 ta raqamdan iborat qiymatlar mos kelmasligi kerak.
3 xonali #abc rangini qidirish uchun regexp: /#[a-f0-9]{3}/i.
Biz yana 3 ta ixtiyoriy olti burchakli raqamni qo’shishimiz mumkin. Bizga ko’proq yoki kamroq kerak emas. Rangda 3 yoki 6 ta raqam mavjud.
Buning uchun {1,2} kvantatoridan foydalanamiz: bizda /#([a-f0-9]{3}){1,2}/i bo’ladi.
Bu yerda [a-f0-9]{3} namunasi {1,2} kvantini qo’llash uchun qavslar ichiga olingan.
Amalda:
let regexp = /#([a-f0-9]{3}){1,2}/gi;
let str = "color: #3f3; background-color: #AA00ef; and: #abcd";
alert(str.match(regexp)); // #3f3 #AA00ef #abc
Bu yerda kichik muammo bor: naqsh mavzu:#abcd da #abc topildi. Buning oldini olish uchun oxiriga \b qo’shishimiz mumkin:
let regexp = /#([a-f0-9]{3}){1,2}\b/gi;
let str = "color: #3f3; background-color: #AA00ef; and: #abcd";
alert(str.match(regexp)); // #3f3 #AA00ef