首页 > 解决方案 > 正则表达式验证没有特殊字符的 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)

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

标签: javascriptregexpattern-matching

解决方案


我会说这是一个很好的起点

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

您的限制不是很明显

  1. 可选协议
  2. 可选的 www。条款
  3. 接受字符的限制
  4. 从头到尾的验证^——$

推荐阅读