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

正则匹配结尾带\的网址异常:浏览器与regex101结果不一致

问题分析与解决

首先明确核心问题:你看到匹配结果里的\\,其实是浏览器控制台的转义显示效果——控制台会把单个\自动显示成\\,并非真的匹配到了两个反斜杠。但如果确实要精准匹配以单个\结尾的网址,还得理清网页内容的实际情况:

  • 若网页源码是"https://de.wikipedia.org\"这种写法,浏览器解析DOM后,innerHTML里不会保留转义引号的那个\,只会留下https://de.wikipedia.org",这种场景下你根本匹配不到\;
  • 只有当网页源码里是"https://de.wikipedia.org\\"时,innerHTML里才会存在单个\,正则才能正常匹配。

给你修正后的简洁版正则,避免原写法的冗余问题:

// 正则字面量写法,匹配以单个\结尾的http/https网址
const regex = /https?:\/\/[\w.-]+(?:\/[\w\/=-]+)?\\/g;
const websites = document.documentElement.innerHTML.match(regex);
console.log(websites);

如果用new RegExp构造函数,注意字符串里的反斜杠需要双重转义:

const regex = new RegExp('https?:\\/\\/[\\w.-]+(?:\\/[\\w\\/=-]+)?\\\\', 'g');

原正则的冗余点说明:比如h[\w]+可简化为https?(精准匹配http/https),[\:\/\/]+没必要加加号,直接写:\/\/即可,多余的字符组和加号会导致匹配无效的重复内容。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.11 03:35:10