我有一个包含内容的字符串。html
我想使用 javascript 正则表达式删除标签上的style
属性,如下所示:style
前
<style style="color: red;">
后
<style>
你能帮助我吗 ?
我有一个包含内容的字符串。html
我想使用 javascript 正则表达式删除标签上的style
属性,如下所示:style
前
<style style="color: red;">
后
<style>
你能帮助我吗 ?
$input = '<style style="color: red;">';
$output = preg_replace('/(<[^>]+) style=".*?"/i', '$1', $input);
echo $output;
输出将是这样的
<style>
假设您在字符串中有它(这是一个非常基本的示例,它不会处理例如属性值中的转义引号):
str = str.replace(/style="[^"]*"/, "");
如果这实际上是 DOM 中的一个节点:
node.removeAttribute("style");
如果我正确理解您的问题,您想在不使用浏览器的情况下使用 Javascript 去除具有 HTML 内容的字符串中的样式属性(即在 Node 环境中)。
您可以使用 RegEx 删除它们。要么只对所有具有样式属性的标签执行此操作:
// For all tags:
myString = '<style style="color: red;">';
myString = myString.replace(/(<[^>]+) style=".*?"/ig, '$1');
console.log(myString);
或者只是带有样式属性的样式标签:
// For style tags only:
myString = '<style style="color: red;">';
myString = myString.replace(/(<style[^>]*) style=".*?"/ig, '$1');
console.log(myString);
考虑以下:
var testHtmlString = '<p style="color: rgb(0, 0, 0); font-family: "Times New Roman";"></p>';
var regex = /style=".*?"\S"/
尝试做testHtmlString.replace(regex, '')
希望这可以帮助。
如果有多行 HTML,比如您有大量需要删除其内联样式的 HTML,请使用以下内容 -
testHtmlMultilineString.replace(/style=".*?"/mg,'')
这是一种荒谬的使用方式,<style>
但无论如何。你可以这样做:
var styles = document.getElementsByTagName('style');
for ( var i = 0, l = styles.length; i < l ; i++ ){
styles[i].removeAttribute('style');
}
拨弄它的工作原理http://jsfiddle.net/xabe7/
您在问题中添加了标签“javascript”。如果您想使用 javascript 或 jQuery,则已经存在该问题(带有解决方案):
例如,给你的元素 'id' 或 'class' 并使用:
getElementById("id").removeAttribute("style");
如果您使用的是 jQuery,那么
$("#id").removeClass("classname");