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

如何用正则表达式移除字符串中www.开头及不区分大小写的HTTP类URL?

解决方案

要同时匹配带协议(HTTP/HTTPS/FTP,不区分大小写)和www.开头的URL,你需要对原正则做两处关键修改:添加www.匹配规则,以及启用不区分大小写的修饰符。

修改后的正则表达式

/(?:https?|ftp):\/\/[\n\S]+|(?:www\.)[\n\S]+/gi

正则各部分解释

  • i修饰符:放在正则末尾,让整个匹配规则不区分大小写,这样HTTP://、HttPs://、WWW.example.com这类大小写混合的写法都能被精准匹配到。
  • (?:https?|ftp):\/\/[\n\S]+:保留你原有的协议开头URL匹配逻辑,https?匹配HTTP/HTTPS,ftp匹配FTP协议,[\n\S]+匹配后续的域名、路径等非空白字符(包含换行符)。
  • |(?:www\.)[\n\S]+:新增的www.开头匹配规则,(?:www\.)是非捕获组,专门匹配www.(不区分大小写),后面的[\n\S]+同样匹配后续的URL内容。
  • g修饰符:全局匹配标识,确保替换掉输入中所有符合规则的URL,而不是只替换第一个匹配项。

修改后的完整代码

var _input = document.querySelector("#input");
var btn = document.querySelector("#btn");
var results = document.querySelector("#results");
btn.addEventListener("click", function() {
  var input_ = _input.value;
  // 替换为新的正则规则
  var cleanInput = input_.replace(/(?:https?|ftp):\/\/[\n\S]+|(?:www\.)[\n\S]+/gi, '');
  results.innerHTML = cleanInput;
});
<textarea id="input" rows="5" style="width: 200px;"></textarea>
<button id="btn">SUBMIT</button>
<div id="results"></div>

小提示

这个正则在大多数日常场景下足够好用,但如果需要处理更复杂的URL边缘情况(比如包含特殊字符的路径、带端口号的URL等),可以进一步细化匹配规则,但针对你当前的需求,这个版本已经完全满足。

内容的提问来源于stack exchange,提问作者Christopher M.

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.12 04:32:34