Reputation: 91
I have been struggling with this for a while now so I thought I would ask here to see if anyone can help me out.
I have a string of css styles in javascript which looks like this:
width: 250px; background-color: rgb(48, 44, 48);
I am trying to replace the rgb value in the string with a hex value by running it through a function I have called RGBtoHEX so I am left with a string like the following:
width: 250px; background-color: #302C30;
I am struggling to create the regex to get the rgb string from the main string to pass to the function.
Any help with this would be great.
Thanks for looking
Upvotes: 2
Views: 1987
Reputation: 655269
Try something like this:
str.replace(
/\brgb\s*\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*\)/g,
function($0, $1, $2, $3) {
return "#" + ("0"+Number($1).toString(16)).substr(-2) + ("0"+Number($2).toString(16)).substr(-2) + ("0"+Number($3).toString(16)).substr(-2);
})
Upvotes: 12
Reputation: 2201
You can try putting the css line in a string and extracting the rgb values character by character.
Upvotes: 0