Я ищу решение для сопоставления тегов стиля html с произвольным текстом (также специальными символами) между ответом API, который содержит правильный шаблон html:
Часть строки:
...
Aenean <style>asdfasdf</style>lacinia bibendum <a href="/life">life</a>
sed <style>asdfasdf</style>consectetur.
<a href="/work">Work</a> quis risus eget urna mollis ornare
<a href="/about">about</a> <!--[if !mso]><style>v\:* {behavior:url(#default#VML);}
o\:* {behavior:url(#default#VML);}
w\:* {behavior:url(#default#VML);}
.shape {behavior:url(#default#VML);}
</style><![endif]-->leo.
...
Мое регулярное выражение (пока):
<style[^>]*>(.*?)<\/style>
соответствует только тегам стиля без специальных символов
<style>asdfasdf</style>
но все еще отсутствует на
<style>v\:* {behavior:url(#default#VML);}
o\:* {behavior:url(#default#VML);}
w\:* {behavior:url(#default#VML);}
.shape {behavior:url(#default#VML);}
</style>
Для проверки:
https://regexr.com/ - выражение и текст регулярного выражения, как описано выше.
Полная рабочая последовательность JavaScript для непосредственного копирования вставки в ваш код:
console.warn(value);
console.warn(/<style[^>]*>(.*?)<\/style>/gs.test(value));
value = value.replace(/<style[^>]*>(.*?)<\/style>/gs, '');
console.warn(value);
console.warn(/<style[^>]*>(.*?)<\/style>/gs.test(value));
Возвращает:
строка
правда
строка
ложь