【发布时间】:2010-09-18 14:19:43
【问题描述】:
我有以下正则表达式可以很好地匹配 url:
((https?|ftp|gopher|telnet|file|notes|ms-help):((//)|(\\\\))+[\w\d:#@%/;$()~_?\+-=\\\.&]*)`
但是,它不处理没有前缀的 url,即。 stackoverflow.com 或 www.google.com 不匹配。任何人都知道我可以如何修改这个正则表达式而不关心是否有前缀?
编辑:我的问题是不是太含糊了?需要更多细节吗?
(((https?|ftp|gopher|telnet|file|notes|ms-help):((//)|(\\\\)))?[\w\d:#@%/;$()~_?\+-=\\\.&]*)
我加了一个()? Vinko Vrsalovic 建议的协议,但现在正则表达式几乎可以匹配任何字符串,只要它具有有效的 URL 字符。
我的实现是我有一个管理内容的数据库,它有一个包含纯文本、电话号码、URL 或电子邮件地址的字段。我正在寻找一种简单的方法来验证输入,以便我可以正确格式化它,即。为网址/电子邮件创建锚标记,并格式化电话号码,我如何在整个网站上格式化其他号码。有什么建议吗?
【问题讨论】:
-
我必须补充一点,我并不是建议你真的这样做,只是告诉你这个正则表达式没有那个部分几乎没用
-
在这种情况下有效是什么意思?那你要猜是哪个?