如何用ASP从文本中提取url?

时间:2014-01-23 11:51:10

标签: asp-classic

我有一个文本文件,里面有一些文字。在文本的某处可能有一个完整的URL,以http://或https://。

开头

如何将网址转换为网址?

示例文本:stackoverflow很棒,请访问http:// www.stackoverflow.com

应显示为:stackoverflow很棒,所以请访问 http://www.stackoverflow.com

由于

2 个答案:

答案 0 :(得分:1)

我多年来一直使用这个脚本,效果很好。它使用RegEx在字符串中查找URL。

function create_links(strText)
    strText = " " & strText
    strText = ereg_replace(strText, "(^|[\n ])([\w]+?://[^ ,""\s<]*)", "$1<a href=""$2"" ref=""nofollow"">$2</a>")
    strText = ereg_replace(strText, "(^|[\n ])((www|ftp)\.[^ ,""\s<]*)", "$1<a target=""_blank"" ref=""nofollow"" href=""http://$2"">$2</a>")
    strText = ereg_replace(strText, "(^|[\n ])([a-z0-9&\-_.]+?)@([\w\-]+\.([\w\-\.]+\.)*[\w]+)", "$1<a href=""mailto:$2@$3"">$2@$3</a>")
    strText = right(strText, len(strText)-1)
    strText = Replace(strText,"." & chr(34) & ">",chr(34) & ">")
    strText = Replace(strText,".)" & chr(34) & ">",chr(34) & ">")
    create_links = strText
end function

function ereg_replace(strOriginalString, strPattern, strReplacement)
    dim objRegExp : set objRegExp = new RegExp
    objRegExp.Pattern = strPattern
    objRegExp.IgnoreCase = True
    objRegExp.Global = True
    ereg_replace = objRegExp.replace(strOriginalString, strReplacement)
    set objRegExp = nothing
end function

我做了一些改动,但原文在这里...... http://www.ipaste.org/Ycc

答案 1 :(得分:0)

  1. 在文本中查找HTTP://或HTTPS://的位置/入口。请参阅“InStr”功能。
  2. 查找URL的结束位置,它可以是SPACE字符或其他一些字符,例如“;”。 (空格字符不适用于您提供的样本)。
  3. 获取URL后,将其放在HTML标记中:)您可以使用Replace或通过连接字符串来完成此操作。