我使用以下正则表达式来验证使用JavaScript的URL
/http:\/\/[A-Za-z0-9\.-]{3,}\.[A-Za-z]{3}/
现在,上面验证了http://example.com
形式的网址我希望它也验证端口号。例如,应验证http://example.com:8080或http://example.com:80。
如何修改相同的正则表达式以支持端口号验证(应该是必须的)?
答案 0 :(得分:2)
首先,您当前的正则表达式与相当大比例的有效网址不匹配:
这些限制中的一个或全部可能是故意的,但如果不提及它将是我的疏忽。
其次,您可以传递[A-Za-z...]
修饰符来创建不区分大小写的正则表达式,而不是使用/.../i
。
考虑到这些因素,可以进行以下更改:
/^(https?):\/\/([A-Z\d\.-]{2,})\.([A-Z]{2,})(:\d{2,4})?/i
编辑:已更新为2到4位数的端口号。
答案 1 :(得分:-1)
使用它:
^http:\/\/[A-Za-z0-9\.-]{3,}\.[A-Za-z]{3}(?:\:\d+)$
演示:
只有具有端口号的网址才会被验证,我在结尾之前添加了(?:\:\d+)
,以便可以验证冒号和一个或多个数字。您可以使用量词{}
显式地将冒号后的数字位置放在这样的位置:
(?:\:\d{4})
只允许四位数。结肠后
<强>更新强>
操作要求对数字2-4
只需将quatifier更改为
(?:\:\d{2,4})