Вы можете использовать эти два регулярных выражения, чтобы найти различные rgb
s, подлежащие замене:
rgb\([^)]*?\)(?=[^)]*rgb)
ищет rgb(
, за которым следует некоторое количество не )
символов и )
, с предварительным утверждением, что после совпадения снова следует rgb
после некоторого числа не )
символов.
rgb\([^)]*?\)(?=\s*\))
ищет rgb(
, за которым следует некоторое количество не )
символов и )
, с предварительным утверждением, что за соответствием следует некоторое количество пробелов и )
.
var new_color = 'rgb(140,220,0)';
var sty = $('#targ').attr('style');
var re = [
/rgb\([^)]*?\)(?=[^)]*rgb)/,
/rgb\([^)]*?\)(?=\s*\))/
];
for (let x = 0; x < 2; x++) {
var new_sty = sty.replace(re[x], new_color);
$('#targ' + x).attr('style', new_sty)
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div id="targ" style="background:linear-gradient(to right, rgb(255,102,255), rgb(255,0,0)); color:black; padding:25px 9px 14px 9px;">LOREM</div>
<div id="targ0" style="background:linear-gradient(to right, rgb(255,102,255), rgb(255,0,0)); color:black; padding:25px 9px 14px 9px;">LOREM</div>
<div id="targ1" style="background:linear-gradient(to right, rgb(255,102,255), rgb(255,0,0)); color:black; padding:25px 9px 14px 9px;">LOREM</div>