验证网址URL的正则表达式

“((http|https|ftp):(|)((/w)+[.]) {1,}(net|com|cn|org|cc|tv|[0-9]{1,3})(((//[/~]*|//[/~]*)(/w)+)|[.](/w)+)*(((([?](/w)+){1}[=]*))*((/w)+){1}([/&](/w)+[/=](/w)+)*)*)”

(不含外侧中文引号),解析:要判断字符串是否为网址,需要下面几个条件。

条件一:常见的网址是以http:// 、https://或ftp://开头,而这部分转换为正则表达式就为(http|https|ftp):(|)。

条件二:在http:// 后面必须要紧跟一个单词字符(一般为www),然后就是字符“.”(这样的组合必须出现一次或多次),最后就是域名(net、com、cn或数字的IP地址等),这部分转换为正则表达式就为((/w)+[.]){1,}(net|com|cn|org|cc|tv|[0-9]{1,3})。

条件三:在完整的链接后,可能会出现下一级或更多级的目录,甚至是“~”符号,此条件变为正则表达式为(((//[/~]*|//[/~]*) (/w)+)|[.](/w)+)*。

条件四: 链接的末尾还可以带有参数,如前面提到的230.
aspx&e=9690或是?Page=2&action=display等,换为正则表达式为(((([?] (/w)+){1}[=]*))*((/w)+){1}([/&](/w)+[/=](/w)+)*)*。

上面是本人在BAIDU知道上找的一段别人的回答。很明显别人直接拷贝过去肯定用不了,因为正则表示式本身是没有错误的,无奈就是里面的两个半角的逗号被改成了全角的逗号,就是这个肯定会把别人搞的焦头烂额,肯定是以为没法用活错误的代码,这些弄些代码似乎总要搞出一些小错误在其中才愿意贴出来,正确的应该是:

((http|https|ftp):(|)((/w)+[.]){1,}(net|com|cn|org|cc|tv|[0-9]{1,3})(((//[/~]*|//[/~]*)(/w)+)|[.](/w)+)*(((([?](/w)+){1}[=]*))*((/w)+){1}([/&](/w)+[/=](/w)+)*)*)

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值