我的 STRING 带有html
内容。我想使用javascript regex删除style
标记上的style
属性,如下所示:
之前的
<style style="color: red;">
后的
<style>
你能帮助我吗?
答案 0 :(得分:6)
$input = '<style style="color: red;">';
$output = preg_replace('/(<[^>]+) style=".*?"/i', '$1', $input);
echo $output;
输出将是这样的
<style>
答案 1 :(得分:1)
假设你有一个字符串(这是一个非常基本的例子,它不会处理例如属性值中的转义引号):
str = str.replace(/style="[^"]*"/, "");
如果它实际上是DOM中的节点:
node.removeAttribute("style");
答案 2 :(得分:0)
如果我正确理解您的问题,您希望在没有使用浏览器的情况下(即在节点环境中)使用Javascript去除具有HTML内容的字符串中的样式属性。
您可以使用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);
答案 3 :(得分:0)
请考虑以下内容:
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,'')
答案 4 :(得分:-1)
您在问题中添加了“javascript”标记。如果你想使用javascript或jQuery,那么已经存在这个问题(使用解决方案):
removing html element styles via javascript
例如,给你的元素'id'或'class'并使用:
getElementById("id").removeAttribute("style");
如果您使用的是jQuery,那么
$("#id").removeClass("classname");
答案 5 :(得分:-1)
这是一种使用<style>
的荒谬方式,但无论如何。你可以这样做:
var styles = document.getElementsByTagName('style');
for ( var i = 0, l = styles.length; i < l ; i++ ){
styles[i].removeAttribute('style');
}