我使用以下表达式进行URL验证。
^(https?:\/\/)?([\da-z\.-]+)\.([a-z\.]{2,6})([\/\w \.-]*)*\/?$
然而,当我有
时"httpcolonforwardslashessite" (colon = : and foward slashes = //)
它仍然将其作为网址传递。如何修改上面的表达式以确保最后有“.com / net”?
谢谢
tldr:我想在网址末尾检查.com或.net。为了达到这个目的,我可以对exp进行哪些更改?
答案 0 :(得分:4)
你不能使用内置功能,而不是正则表达式吗?
Uri.TryCreate
方法可以帮到你。
此方法
Boolean
成功创建,true
Uri
的值;否则,false
。UriKind Enumeration
作为参数的重载来检查不同类型的网址,例如Absolute或/和Relative。答案 1 :(得分:1)
假设你只想要.com,这将有效:
^(https?://)?([\da-z.-]+).([a-z.]{2,6})([/\w .-])/?\.com([/\w \.!"£$%^&\(\)\*])*
或者这个不仅包括.com from here
^(http|https)\://[a-zA-Z0-9\-\.]+\.[a-zA-Z]{2,3}(:[a-zA-Z0-9]*)?/?([a-zA-Z0-9\-\._\?\,\'/\\\+&%\$#\=~])*$