正则表达式替换链接

时间:2012-11-27 23:32:26

标签: javascript regex

嗨,我有一个很好的旧的替换普通网址链接问题。 我正在使用Jeff Roberson的代码中的linkify, 但由于它不支持伪URL(www。),我试图用我发现的另一个正则表达式添加它。 到目前为止,我一直坚持这个

  var replacePattern2 = /(^|[^\/])(www\.[\S]+(\b|$))/gim;
  text.replace(pseudoUrlPattern, '$1<a target="_blank" href="http://$2">$2</a>')

文本可以是html标记,当链接有一个没有任何空格的结束标记时,它似乎包含在链接中!我试着向前看,但似乎我没有把它弄好。 示例文本将是

 <p>www.something.here/something</p>

1 个答案:

答案 0 :(得分:0)

这样的事情怎么样:

var text = "<p>www.something.here/something</p>";
var replacePattern2 = /(.*?)(((([A-Za-z]{3,9}:(?:\/\/)?)(?:[-;:&=\+\$,\w]+@)?[A-Za-z0-9.-]+|(?:www.|[-;:&=\+\$,\w]+@)[A-Za-z0-9.-]+))((?:\/[\+~%\/.\w-_]*)?\??(?:[-\+=&;%@.\w_]*)#?(?:[\w]*))?)/gim;
text.replace(replacePattern2, '$1<a target="_blank" href="$4">$4</a>')

基于此正则表达式:http://blog.mattheworiordan.com/post/13174566389/url-regular-expression-for-links-with-or-without-the