REGEX Str Replace-查找链接文本并使其成为链接



我以前在Flash中编写过这个功能,没有问题;然而,我现在正试图用JavaScript做这件事,我遇到了一些困难。

使用Regex,我试图搜索一个字符串寻找任何类似于链接…例如http://www.google.com或http://stacoverflow.com/question/ask;然后用适当的::

将结果括起来
<script type="text/javascript>
var mystring = "I'm trying to make this link http://facebook.com/lenfontes active." 
/// REGEX that worked in Flash to grab ALL parts of the URL including after the .com...
var http = /b(([w-]+://?|www[.])[^s()<>]+(?:([wd]+)|([^[:punct:]s]|/)))/gi;
// preform the replace based on the Regex
mystring = mystring.replace(http, function(){   
    var link = arguments[0];
if (link.indexOf("http") == -1){
    link = "http://" + link;}
    return "<a href='"+link+"'>"+arguments[0]+"</a>";
});
$('#results).html(mystring);
</script>

我遇到的问题是:在…之后的任何东西都被忽略了。因此链接是不正确的…

即使在我发布这个问题的时候,Stack Overflow界面已经将我的文本呈现出来,并使用适当的链接标签…我需要那样做。

欢迎提出任何建议。

——更新:

对不起,让我扩展一下…我不只是寻找http://,它需要检测和包装链接开始与"https://"和/或只是开始与"www"

你的正则表达式不工作,因为ECMA (JavaScript)不支持POSIX字符类,所以[:punct:]忽略.com中的.

最新更新