在添加内容过程中,我们经常需要添加一些网址,同时需要这些网址显示出来就可以点击并在新窗口打开.例如客户信息备注,订单信息备注等内容中经常要使用到此类功能,下面由南昌网站建设公司工程向大家介绍实现方法,以下代码也是经过常期使用,确定功能达到预期要求,希望此代码能对广大南昌网络公司技术人员有所帮助:
1.例如:有以下内容
南昌网站设计公司网址是http://www.jxbh.cn 其中有一篇专业介绍Mysql中DATE_SUB 使用方法结合查询一天内,一周内,一月内的文章 http://www.jxbh.cn/newshow.asp?id=1347&tag=2
我们在文本框内输入这些内容,前台显示出来就能打开这些链接.
2.定义变量(也可以获取数据库内容)
Content="南昌网站设计公司网址是http://www.jxbh.cn/ 其中有一篇专业介绍Mysql中DATE_SUB 使用方法结合查询一天内,一周内,一月内的文章 http://www.jxbh.cn/newshow.asp?id=1347&tag=2
3.输出
response.Write(AutoLink(Content))
重点:
Function AutoLink(TextContent)
Dim match, matches, offset, url, email, link, relnkAutoLinkURL
relnkAutoLinkURL = "[[%URLText%]]"
If Not IsObject(regExp) Then Set regExp = New RegExp
regExp.Global = True
regExp.IgnoreCase = True
'查找链接地址
regExp.Pattern = "(((ht|f)tps?://)|(www.))([w-]+.)+[w-:]+(/[w- ./?%#;&=]*)?"
Set matches = regExp.Execute(TextContent)
offset = 0
For Each match in matches
url = match
If Left(url, 4) = "www." Then url = "http://" & url
link = Replace(Replace(relnkAutoLinkURL, "[[%URLText%]]", match), "[[%URL%]]", url)
TextContent = Mid(TextContent, 1, match.FirstIndex + offset) & link & Mid(TextContent, match.FirstIndex + 1 + match.Length + offset, Len(TextContent))
offset = offset + Len(link) - Len(match)
Next
'查找邮箱地址
regExp.Pattern = "[A-Za-z0-9_+-.']+@w+([-.]w+)*.w+([-.]w+)*"
Set matches = regExp.Execute(TextContent)
offset = 0
For Each match in matches
email = match
link = Replace(Replace(relnkAutoLinkURL, "[[%URLText%]]", match), "[[%URL%]]", "mailto:" & email)
TextContent = Mid(TextContent, 1, match.FirstIndex + offset) & link & Mid(TextContent, match.FirstIndex + 1 + match.Length + offset, Len(TextContent))
offset = offset + Len(link) - Len(match)
Next
AutoLink = TextContent
End Function
可以根据用户需求可控制是否在新窗口打开链接,还是在当前窗口打开链接,由此处代码控制,[[%URLText%]],如果不加 target='_blank' 则在当前窗口打开该链接.