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