REGEX Str替换 - 查找链接文本并将其链接

时间:2011-09-26 18:49:26

标签: javascript regex hyperlink textfield

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

使用正则表达式,我正在尝试搜索字符串,寻找类似于链接的任何内容......例如http://www.google.comhttp://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()<>]+(?:\([\w\d]+\)|([^[: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”开头

1 个答案:

答案 0 :(得分:2)

您的正则表达式不起作用,因为ECMA(JavaScript)不支持POSIX字符类,因此[:punct:]会忽略.中的.com