Javascript 要添加目标的正则表达式=";“空白”;连接到所有外部链接
是否可以只使用一个正则表达式向所有Javascript 要添加目标的正则表达式=";“空白”;连接到所有外部链接,javascript,jquery,regex,dom,Javascript,Jquery,Regex,Dom,是否可以只使用一个正则表达式向所有标记添加target=“\u blank”?我一直在尝试正面和负面的表情,但都没有效果。这应: 匹配其href以http:// 如果锚定标记没有target标记,则添加target=“\u blank”标记 如果它确实有一个目标标记,它会检查目标标记是否已经设置为“\u blank”,如果没有设置,它会被替换为目标=“\u blank” 这可能吗?如果不是,那么什么是计算强度最低的方法呢?您没有真正指定这是否是来自DOM的html(以及其他内容)。假设您要修
标记添加target=“\u blank”
?我一直在尝试正面和负面的表情,但都没有效果。这应:
- 匹配其
以href
http://
- 如果锚定标记没有
标记,则添加target
标记target=“\u blank”
- 如果它确实有一个
标记,它会检查目标
标记是否已经设置为目标
,如果没有设置,它会被替换为“\u blank”
目标=“\u blank”
这可能吗?如果不是,那么什么是计算强度最低的方法呢?您没有真正指定这是否是来自DOM的html(以及其他内容)。假设您要修改DOM。。。使用jQuery,您可以执行以下操作:
$(document).ready( function() {
$('a').filter( function() {
return $(this).attr('href').substr(0, 7) == "http://";
}).attr('target', '_blank');
});
下面是一个JSFIDLE,它显示了它的工作原理(您可以检查元素,看看
a
和href
以http://
开头,有target=“\u blank”
):如果HTML也是格式良好的XML,那么最好使用支持xpath和xslt的XML工具。看看哪一个提供了与grep、sed等类似的工具来处理XML。我想这会满足你的要求,但我没有尝试过:
xml ed -P -S -i //a -t attr -n target -v _blank somefile.html >somefile_2.html
xmled
调用XMLStarlet编辑命令
-p
保留格式
-S
保留空白
-i//a
在每个标记处插入
-t attr
插入类型为属性
-n目标
要插入的属性名称
-v\u blank
要插入的属性值
要进行更复杂的编辑,可以将XMLStarlet与xslt转换一起使用。另一个选项是将
target=“\u blank”
添加到
中。这将全局影响页面
您是想通过嵌入html页面中的脚本(如Javascript)来实现这一点,还是在对html文件运行程序?您想要一个正则表达式来进行设置?它们不是用来将字符串与模式匹配的吗?请记住,在HTML中,标记属性没有严格的顺序。所以
和
都是有效的。@DioF:你不会从评论投票中获得代表,所以链接它只是一件有趣的事(并且是对OP的一个警告,不要只使用regex)。它最初是用于服务器端的,是来自CMS的HTML。然而,这将被输出到一个页面,实际上我喜欢您通过JavaScript将计算推送到客户端的想法。