我正在格式化某个HTML文本。
在该文中,我有几个具有各种属性的<span>
标签。
我想改变所有
<span style="text-decoration: underline; color: #993300;">XXXXXXX</span>
带
<span style="color:#993300"><u>XXXXXXXX</span>
我用过
$cont = preg_replace("/<span style=\"text-decoration:\s(.+?)>(.+?)<\/span>/is", "<u>$2</u>", $cont);
实现这一目标。但问题是,如果我有多个</span>
标记,那么该脚本将替换<span style="...
和最后</span>
之间的所有内容
请帮忙。
答案 0 :(得分:1)
试试这个
preg_replace("/(<span\s*style\s*=\s*\"[^\"]*?)text-decoration\s*:\s*underline\s*;([^\"]*\"\s*>)((.(?!<\/span>))+)<\/span>/is", "$1$2<u>$3</u><\/span>")
想法是匹配每个角色,直到</span>
与
(.(?!<\/span>))+
答案 1 :(得分:0)
您可以使用JQuery
:
<script type="text/javascript">
$(document).ready(function () {
$('span').css('color', '#993300');
$('span').css('text-decoration', 'none');
});
</script>
如果您是JQuery
的新用户,而不是jQuery
中的<head>
库,请参阅此示例:
<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script>
</head>
现在您可以使用上面的代码,它会起作用。