如何字符串中所有链接都加上target="_blank"

fisherboy 2009-09-07 09:25:18

s="aaaa<a href=""http://www.baidu1.com"" target=""_blank"" onclick=""javascript:if(2>1)alert(10)"">百度</a>aaaaaaaa"
s=s&"aaaa<a href=""http://www.baidu2.com"" target=""_self"">谷歌</a>aaaaaaaa"
s=s&"aaaa<a href=""http://www.baidu3.com"">雅虎</a>aaaaaaaa"


如上代码所示。
字符串s中有很多代码,包括数量不定的html链接代码<a href=...>...</a>,(其实是接受从编辑器提交过来的内容,比如添加新闻时的内容字段)

上面这段代码,将要显示在我的网页前台,
我想要让代码中所有<a></a>链接都在新窗口打开,
所以我的思路是,替换或增加所有<a>,使得target="_blank"。

我的问题是
1,有没有不要 替换/增加 target="_blank"的方法?(不能用base,因为有些地方比如我的导航,我还是希望在本窗口打开。)

2,如果采用处理字符串的方式,请问有什么便捷的方法?比如正则表达式。
...全文
260 6 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
召耳先生 2009-09-08
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 wansai00 的回复:]
<head>
......
<base target="_blank" />
......
</head>
[/Quote]


学习了
xdxxlh 2009-09-08
  • 打赏
  • 举报
回复
4楼正解。
直接在<head>与</head>标签之间加上<base target="_blank" /> 即默认新窗口打开链接,不用设置页面中的链接了。
wansai00 2009-09-07
  • 打赏
  • 举报
回复
<head>
......
<base target="_blank" />
......
</head>
hookee 2009-09-07
  • 打赏
  • 举报
回复

s="aaaa<a href=""http://www.baidu1.com"" target=""_blank"" onclick=""javascript:if(2>1)alert(10)"">百度</a>aaaaaaaa"
s=s&"aaaa<a href=""http://www.baidu2.com"" target=""_self"">谷歌</a>aaaaaaaa"
s=s&"aaaa<a href=""http://www.baidu3.com"">雅虎</a>aaaaaaaa"

Set re = New RegExp
With re
.Global = True
.IgnoreCase = True
.MultiLine = True
.Pattern = "(<a [^>]+)(target=""[^""]+"")([^>]*>)"
s = .Replace(s, "$1$3")
.Pattern = "(<a )([^>]+>)"
s = .Replace(s, "<a target=""_blank"" $2")
End With

Response.Write s
chinabh 2009-09-07
  • 打赏
  • 举报
回复
看下这篇文章,可能对你有帮助,是关于JS设置TARGET属性
http://www.bhcode.net/article/20090907/5542.html
fisherboy 2009-09-07
  • 打赏
  • 举报
回复
如果是处理字符串,那将是非常麻烦的一件事情。因为s="........"串中的字符非常不规则。

很不好取定<a ></a>什么时候开始,什么时候结束。

28,409

社区成员

发帖
与我相关
我的任务
社区描述
ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
社区管理员
  • ASP
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧