You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用正则表达式验证不带http和https前缀的URL

URL校验正则方案(支持无http/https前缀场景)

适用正则规则

可直接使用以下正则覆盖带/不带协议前缀的通用URL校验需求:
^((https?|ftp):\/\/)?([a-zA-Z0-9-]+\.)+[a-zA-Z]{2,}(\/[^\s]*)?$
该正则覆盖的合法场景包括:

  • 带http/https/ftp前缀的完整URL,如https://google.com、http://www.example.com/path?query=1
  • 不带协议前缀的根域名/子域名,如google.com、www.example.com
  • 带路径、参数后缀的无协议URL,如google.com/search?q=test
  • 自动过滤带空格、特殊符号的非法内容

如果需要仅支持http/https协议,删掉正则中的|ftp即可。如果需要额外适配localhost、IP地址类的校验,可在域名匹配段补充对应的IP规则。

Dart 代码使用示例

bool isValidUrl(String input) {
  final urlRegExp = RegExp(r'^((https?|ftp):\/\/)?([a-zA-Z0-9-]+\.)+[a-zA-Z]{2,}(\/[^\s]*)?$');
  return urlRegExp.hasMatch(input.trim());
}

调用该方法校验google.com时会返回true,和你原有的校验逻辑相比可兼容无协议前缀的场景。

内容的提问来源于stack exchange,提问作者Lalit Rawat

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.28 06:45:07