删除<;风格>;在JavaScript中使用正则表达式全局标记

删除<;风格>;在JavaScript中使用正则表达式全局标记,javascript,regex,Javascript,Regex,如何在JavaScript中使用正则表达式来删除所有,,,。最终的结果将是没有样式标记的CSS 由于某些原因,下面的代码不起作用 str.replace(/<style\b[^<]*(?:(?!<\/style)<[^<]*)*<\/style>/gi,''); str.replace(/捕获您可以使用的内联样式 style="(.*)" 根据您的问题,以下正则表达式代码应该足够了 var regex = /((<style>)|(<

如何在JavaScript中使用正则表达式来删除所有
。最终的结果将是没有样式标记的CSS

由于某些原因,下面的代码不起作用

str.replace(/<style\b[^<]*(?:(?!<\/style)<[^<]*)*<\/style>/gi,'');

str.replace(/捕获您可以使用的内联样式

style="(.*)"

根据您的问题,以下正则表达式代码应该足够了

var regex = /((<style>)|(<style type=.+)|(<\/style>))/g;
var str = `<style>
 styles
</style>

<style type="text/css">
 styles
</style>`;
const subst = ``;

// The substituted value will be contained in the result variable
var result = str.replace(regex, subst);

console.log('Substitution result: ', result);

var regex=/(()|)(首先,更正您的regex:use\s+而不是\b,在type=之后正确设置参数,添加标记变量

/((<style>)|(<style\s+type=(?:".*"|'.*')\/?)|(<\/style>))/gi

您尝试过什么?有任何有效的代码吗?谢谢您的回答。我更新了我的问题。欢迎这么做。请注意,如果您想要一个正则表达式,您不应该使用正则表达式来设置任务。最好使用人类语言,否则您可能已经在任务公式中出现错误。现在不是您的情况,但它确实发生了太频繁了。否则,这是第一次可以接受的问题。+1.创建一个非匹配组并添加|'(*)'谢谢,这非常有效。我想知道是否有可能删除样式标记中的任何属性,以防它包含媒体或作用域。@jsnewbie它不起作用,因为它需要
>>@Gangnus正则表达式是根据OPs问题提供的,问题没有说明标记中会有垃圾/胡言乱语的值。@jsnewbies、 请参阅
“如何在JavaScript中使用正则表达式删除所有、、。”
@eventhroude。您的正则表达式不仅会匹配这些子字符串
/((<style>)|(<style\s+type=(?:".*"|'.*')\/?)|(<\/style>))/gi
.replace(/((<style>)|(<style\s+type=(?:".*"|'.*')\\/?)|(<\\/style>))/gi,'');