0

我正在使用以下表达式进行 URL 验证。

^(https?:\/\/)?([\da-z\.-]+)\.([a-z\.]{2,6})([\/\w \.-]*)*\/?$

但是,当我有

"httpcolonforwardslashessite" (colon = : and foward slashes = //)

它仍然将其作为 url 传递。如何修改上述表达式以确保末尾有“.com/net”?

谢谢

tldr:我想在 url 的末尾检查 .com 或 .net。我可以对上述 exp 进行哪些更改以实现此目的?

4

2 回答 2

4

你不能使用内置函数而不是正则表达式吗?

Uri.TryCreate方法可以帮助你。

这种方法

  • 返回一个Boolean值,true如果Uri已成功创建;否则,false
  • UriKind Enumeration可以使用接受作为参数的重载检查不同类型的 url,例如 Absolute 或/和 Relative 。
于 2013-06-19T15:34:55.463 回答
1

假设您只想要 .com,这将起作用:

^(https?://)?([\da-z.-]+).([a-z.]{2,6})([/\w .-])/?\.com([/\w \.!"£$%^&\(\)\*])*

或者这个不仅包括 .com从这里

^(http|https)\://[a-zA-Z0-9\-\.]+\.[a-zA-Z]{2,3}(:[a-zA-Z0-9]*)?/?([a-zA-Z0-9\-\._\?\,\'/\\\+&%\$#\=~])*$
于 2013-06-19T15:37:49.450 回答