URL 正则测试器
获取经过测试的 URL 正则(http/https、域名、IP 或 localhost),逐行校验网址,从文本中提取链接,并复制 JS、Python、PHP 或 Java 代码。
每一行在测试前都会去掉首尾空白。协议必须是小写;端口只检查是否为 1–5 位数字。
测试使用 JavaScript 正则表达式运行;代码片段把该规则转换为 JavaScript 版本。
| 行 | 输入 | 结果 | 失败原因 |
|---|---|---|---|
| 1 | https://example.com | 有效 | |
| 2 | https://www.example.co.uk/path?q=1#top | 有效 | |
| 3 | http://localhost:3000/api | 有效 | |
| 4 | http://192.168.0.1:8080 | 有效 | |
| 5 | example.com/page | 无效 | 必须以 http:// 或 https:// 开头 |
| 6 | ftp://files.example.com | 无效 | 此规则不允许 ftp:// |
| 7 | https://exa mple.com | 无效 | 含有空格,请编码为 %20 |
这个工具提供多种 URL 格式的规则,准确显示它会接受你的哪些 URL,并把它写成代码。你可以选择受限的网址规则(http 或 https,主机为域名形式、localhost 或 IPv4 地址,端口和路径可选)、协议可省略的版本、同时允许 ftp 的简短宽松规则,或者从连续文本中提取链接的提取器。
使用方法
- 选择与你的表单或解析器应接受的内容相符的规则。
- 每行粘贴一个 URL,或切换到“查找链接”并粘贴任意文本。
- 查看“有效”和“无效”的数量,以及每个被拒绝的行给出的原因。
- 选择语言并复制代码片段。
计算公式
^https?://(?:(?:label\.)+tld|localhost|IPv4)(?::\d{1,5})?(?:[/?#]\S*)?$
标签是 1–63 个字母、数字或连字符,不能以连字符开头或结尾;顶级域名是 2–63 个字母,或 punycode 形式的 xn-- 名称。IPv4 的每个数字限定在 0–255。主机之后是可选的 :端口,再之后是以 /、? 或 # 开头、不含空格的任意内容。这些规则没有实现完整的 URL 标准、IDNA 有效性、DNS 查询或 IPv6 主机解析。不同正则引擎的空白字符类不同,请在目标语言中测试非 ASCII 输入。表格最多显示 400 行。
示例
使用默认列表和网址规则时,7 行中有 4 行通过:https://example.com、https://www.example.co.uk/path?q=1#top、http://localhost:3000/api 和 http://192.168.0.1:8080。example.com/page 没有协议,ftp://files.example.com 使用了不允许的协议,https://exa mple.com 含有空格。让协议可省略后,只有域名的地址也能通过(有效 5 个)。简短宽松规则同样是 5 个,但多通过的是 ftp 链接。
常见问题
只用正则就足以校验 URL 吗?
对表单字段来说,这是不错的初步检查。对重定向或服务端抓取等与安全相关的场景,请用真正的解析器(JavaScript 的 new URL()、Python 的 urllib.parse)解析 URL,并检查它返回的协议和主机。
为什么大写的 HTTP:// 会被拒绝?
这些规则是用小写写的。协议不区分大小写,所以要接受大写,请添加 i 标志(Python 的 re.IGNORECASE、PHP 的 /i、Java 的 Pattern.CASE_INSENSITIVE)。
它会拒绝端口 99999 吗?
不会——它只检查是否为 1 到 5 位数字。有效的 TCP 端口范围是 0 到 65535,如果这很重要,请在匹配之后再比较数值。
为什么提取器去掉了右括号?
在正文中,链接后面常常跟着属于句子的“)”或句号,所以最后一个字符不能是标点或右括号。像维基百科那样真正以“)”结尾的链接会丢掉它,需要的话请自行补回。
资料来源
最后更新:
包含这些输入的页面地址: https://kakao.mobile/zh/tools/url-regex-tool/
引用此工具
kakaoCalc. (2026, November 8). URL 正则测试器. https://kakao.mobile/zh/tools/url-regex-tool/
“URL 正则测试器.” kakaoCalc, 8 Nov. 2026, kakao.mobile/zh/tools/url-regex-tool/.