URL检测和任意文本链接

时间:2011-03-09 13:19:21

标签: regex url

所以Gruber's regex非常适合在文本中查找网址。我缺少的是将bit.ly/foo之类的休闲风格链接转换为可以放入<a href="...">属性的内容的方法。

任何指针?

3 个答案:

答案 0 :(得分:1)

试试这个:([a-z0-9_-]+\.)+[a-z]{2,4}/[^ ]*包括:

  • 至少一次主机名或域名(包含字母数字字符下划线和短划线)
  • 然后是一个TLD,其长度至少为2,最多4个字符,仅包含字母
  • 然后是斜线字符
  • 后跟零或任意数量的非空格字符

这不是很严格,但可能是留言板等工作。

答案 1 :(得分:0)

有时最简单的答案是正确答案:

function canonicalise(url) {
  if (!url.match(/^[a-z][\w-]+:/i)) {
    url = 'http://' + url
  }
  return url
}

答案 2 :(得分:0)

这对我有用:

/((?<=[^a-zA-Z0-9])(?:https?\:\/\/|[a-zA-Z0-9]{1,}\.{1}|\b)(?:\w{1,}\.{1}){1,5}(?:com|org|edu|gov|uk|net|ca|de|jp|fr|au|us|ru|ch|it|nl|se|no|es|mil|iq|io|ac|ly|sm){1}(?:\/[a-zA-Z0-9]{1,})*)/mg

https://regex101.com/r/fO6mX3/2