我有一个字符串,例如:<div style='text-align:center;' otherattr="script">
我想允许特定的属性,例如只允许样式属性。
它应该返回:<div style='text-align:center;'>
我想允许属性样式、href、src 和对齐。
非常感谢。
我有一个字符串,例如:<div style='text-align:center;' otherattr="script">
我想允许特定的属性,例如只允许样式属性。
它应该返回:<div style='text-align:center;'>
我想允许属性样式、href、src 和对齐。
非常感谢。
正如有人在评论中所说,最好的方法是将字符串解析为元素并在其上使用 DOM 方法。REGEX 通常对于 DOM 处理来说是个坏主意。
这将允许id
属性但删除任何其他属性。
//prep
var str = "<div id='something' class='something_else'></div>",
allowed_attrs = ['id'],
tmp_container = document.createElement('div'),;
//parse string as element and retrieve it as one
tmp_container.innerHTML = str;
var div = tmp_container.querySelector('div');
//remove any non-allowed attributes
for (var i=0; i<div.attributes.length; i++)
if (allowed_attrs.indexOf(div.attributes[i].name) == -1)
div.removeAttribute(div.attributes[i].name);
//check
alert(tmp_container.innerHTML); //<div id='something'></div>
你可以使用jquery
var tmp = $('<div style="text-align:center;" otherattr="script">');
var elem = $('<div>');
elem.attr('style', tmp.attr('style'))
elem.attr('href', tmp.attr('href'))
elem.attr('src', tmp.attr('src'))
elem.attr('align', tmp.attr('align'));
此正则表达式将仅匹配您指定的属性,然后您可以将匹配项复制并粘贴到新标签中以替换您开始的那个
(style|href|src|align)=((".+?[^\\]")|('.+?[^\\]'))