Javascript Regex在<img/>和style =“”中添加属性

时间:2014-10-27 02:49:13

标签: javascript html regex

所以我正在使用这个RegEx来扩展我在Dreamweaver上的扩展

我已经让这个代码段在标签内搜索,以查找是否有ISN&a;显示:阻止属性 - 然后添加它。

这是有效的,但现在我需要它在img标签内的内联样式标签内进行搜索。

即。

<img style="border:0px;" src="" alt=""/>

这是我的正则表达式代码段:

if (displayBlock.checked)
            {
                fixIt('<img((?:(?!display:block|/>).)*)/>','<img$1 display:block/>')
            }

如果您还有一些很好的RegEx参考资料,我们将不胜感激。

亲切的问候, 麦克

1 个答案:

答案 0 :(得分:4)

在HTML元素上使用正则表达式通常是一种不好的做法。

为什么不迭代样式属性?

这会迭代所有图像标记,但您可以根据需要修改选择器。迭代标记,检查显示是否未定义,或者是否为falsy,然后添加样式属性值。

[].forEach.call(document.querySelectorAll("img"), function(element) {
    if (!element.style.display) {
        element.style.display = "block";
    }
});

这里的循环版本更快,但安全性更低,但更容易理解!

var x = document.querySelectorAll("img");
for (var i=0; i<x.length; i++) {
    if (!x[i].style.display) {
        x[i].style.display = "block";
    }
}