如何检查给定字符串是否为有效的URL地址?
我对正则表达式的了解是基本的,不允许我从我在网上看到的数百个正则表达式中进行选择.
我在编写匹配有效IPv6地址的正则表达式时遇到问题,包括压缩形式的那些(::从每个字节对中省略或前导零).
有人可以建议一个符合要求的正则表达式吗?
我正在考虑扩展每个字节对,并将结果与更简单的正则表达式进行匹配.
我一直试图获得有效的IPv4验证正则表达式,但没有太多运气.似乎我曾经有过它(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?(\.|$)){4},但它会产生一些奇怪的结果:
$ grep --version
grep (GNU grep) 2.7
$ grep -E '\b(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?(\.|$)){4}\b' <<< 192.168.1.1
192.168.1.1
$ grep -E '\b(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?(\.|$)){4}\b' <<< 192.168.1.255
192.168.1.255
$ grep -E '\b(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?(\.|$)){4}\b' <<< 192.168.255.255
$ grep -E '\b(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?(\.|$)){4}\b' <<< 192.168.1.2555
192.168.1.2555
Run Code Online (Sandbox Code Playgroud)
我做了一个搜索,看看是否已经被问及回答,但其他答案似乎只是显示如何确定4组1-3个数字,或者不适合我.
有任何想法吗?谢谢!
我想验证URL字段,如下所示 -
前两个是使用以下正则表达式验证 -
function is_valid_url(url) {
return /^http(s)?:\/\/(www\.)?[a-z0-9]+([\-\.]{1}[a-z0-9]+)*\.[a-z]{2,5}(:[0-9]{1,5})?(\/.*)?$/.test(url);
}
Run Code Online (Sandbox Code Playgroud)
但是,当我将方案3放在文本框中时,它显示我无效的URL.
任何帮助将受到高度赞赏.
提前致谢
阿莫德