Javascript JS regex-convert";任何;指向链接的纯文本主机名/url/ip
我一直在寻找一个JS regexp,它可以将纯文本url或主机名转换为可点击的链接,但我找到的脚本都不符合我的要求。不幸的是,我在正则表达式方面很差劲,无法修改表达式以使其按我所希望的方式工作 我希望转换为链接的纯文本是:Javascript JS regex-convert";任何;指向链接的纯文本主机名/url/ip,javascript,regex,Javascript,Regex,我一直在寻找一个JS regexp,它可以将纯文本url或主机名转换为可点击的链接,但我找到的脚本都不符合我的要求。不幸的是,我在正则表达式方面很差劲,无法修改表达式以使其按我所希望的方式工作 我希望转换为链接的纯文本是: 任何与http、ftp、mailto或 文件: domain.tld[:port][path][file][querystring] any.sub.domain.tld[:port][path][file][querystring] 0/255.0/255.0/255.0/
非常感谢您的帮助 如果你能忍受误报,比如
某物.notavalidtld
或999.999.999
匹配,那么你要寻找的可能是这样的。(否则,它将被删除。)
从字符串的开头开始匹配
^(
匹配以http/https/ftp/开头的任何内容
((https?|ftps?|mailto|file):.*?)
或匹配以下所有选项
|
可选地匹配http/https/ftp/。。。后跟:
和至少一个/
((https?|ftps?|mailto|file):/+)?
匹配IP地址
(\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}
…或域(具有可选用户名/密码,也与电子邮件地址匹配)
。。。或localhost
|localhost)
(可选)后跟端口号
(:\d+)?
可选后跟任何路径/查询字符串
(/.*)?
确保字符串到此结束
)$
上述所有部分应连接在一起,中间不得有任何空格
我没有对它进行全面测试,所以我可能遗漏了一些东西。但至少你有一个出发点。如果你可以忍受误报,比如
什么。notavalidtld
或999.999.999
匹配,那么你要寻找的可能是这样的。(否则,它将被删除。)
从字符串的开头开始匹配
^(
匹配以http/https/ftp/开头的任何内容
((https?|ftps?|mailto|file):.*?)
或匹配以下所有选项
|
可选地匹配http/https/ftp/。。。后跟:
和至少一个/
((https?|ftps?|mailto|file):/+)?
匹配IP地址
(\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}
…或域(具有可选用户名/密码,也与电子邮件地址匹配)
。。。或localhost
|localhost)
(可选)后跟端口号
(:\d+)?
可选后跟任何路径/查询字符串
(/.*)?
确保字符串到此结束
)$
上述所有部分应连接在一起,中间不得有任何空格
我没有对它进行全面测试,所以我可能遗漏了一些东西。但至少你有一个起点。你想在哪里找到这些纯文本?整个页面或…基本上是为了保存一个“位置”,这个位置可以是一个地方,比如“纽约”,但在大多数情况下是一个url或主机名。所以整个纯文本将是一个链接,或者根本没有链接。你想在哪里找到这个纯文本?整个页面或…基本上是为了保存一个“位置”,这个位置可以是一个地方,比如“纽约”,但在大多数情况下是一个url或主机名。因此,整个纯文本将是一个链接,或者根本没有链接。谢谢Henko,我明天会试试这个!:)谢谢你,亨科,我明天就试试这个!:)