Regex验证不带特殊字符的URL/URI



我需要一个正则表达式来验证给定值是否为不带ascii或特殊字符的URL或URI。

因此有效的场景:

  1. https://stackoverflow.com/questions/ask
  2. /问题/提问

无效场景:

  1. https://stackoverflow.com/questions/ask/@#$ds
  2. 问题/提问#*
  3. https://stackoverflow.com/questions/ask/@#$ds ### (without spaces)

如何使用正则表达式实现这一点?

我认为这是启动的好地方

^[https://|http://]?(www.)?[-a-zA-Z0-9./]+$

目前还不清楚的局限性

  1. 可选协议
  2. 可选www.Clause
  3. 可接受字符的限制
  4. 从开始到结束的验证^-$

最新更新