尝试使用字符串中的javascript为所有标记添加target =“_ blank”。
为什么这样做:
var editdescription = itemdescription.replace(new RegExp("All","g"),"Every");
但不是吗?
var editdescription = itemdescription.replace(new RegExp("<a","g"),"<a target="_blank"");
答案 0 :(得分:5)
您错误地嵌套了双引号。而不是
"<a target="_blank""
尝试转义双引号:
"<a target=\"_blank\""
您编写它的方式被视为两个单独的字符串"<a target="
和""
,其中包含_blank
。
如前所述多次,最好是don't parse HTML with regex。
答案 1 :(得分:1)
您不应该尝试使用正则表达式处理HTML,因为有太多可能出错的事情。在这种情况下,如果您将标记设为<A HREF...>
该怎么办?或者以a
开头的其他代码如<area>
,<abbr>
,<acronym>
等等呢?如果已经有target
属性怎么办?
相反,请尝试将HTML视为HTML而不是纯文本。你手上有一个engire引擎。
var tmp = document.createElement('div');
tmp.innerHTML = itemdescription;
var links = tmp.getElementsByTagName('a'), l = links.length, i;
for( i=0; i<l; i++) {
links[i].setAttribute("target","_blank");
}
editdescription = tmp.innerHTML;