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

如何用正则全局替换JS中的'./'?现有代码无法正常运行

搞定JavaScript替换'./'和正斜杠的问题

嘿,你的代码没法正常工作,核心问题出在正则表达式的特殊字符没转义上,我给你一步步拆解解决办法:

先解决替换所有'./'的问题

你写的/.//g正则有两个坑:

  • 正则里的.是通配符,能匹配任意字符,不是你要找的那个点;
  • /是正则的分隔符,直接写会导致语法错误。

要准确匹配字符串里的./,得把这两个特殊字符用反斜杠\转义,改成/\.\//g。修改后的代码如下:

var text = './test';
var baseUrl = 'http://www.example.com/';
// 转义.和/,全局匹配所有./
text = text.replace(/\.\//g, baseUrl);
console.log(text); // 输出:http://www.example.com/test

再处理正斜杠的替换需求

你说还想替换正斜杠,得看你具体要啥效果,分两种常见情况给你方案:

1. 把所有正斜杠换成其他字符

比如想把所有/换成-,同样要转义/,用正则全局替换:

// 全局替换所有/为-
text = text.replace(/\//g, '-');
// 要是只换第一个,直接用字符串替换就行:text = text.replace('/', '-');

2. 拼接路径时处理多余斜杠

如果你的需求是把相对路径转成绝对路径,同时避免出现//这种重复斜杠,可以先替换./,再清理多余的斜杠:

var text = './test/abc/';
var baseUrl = 'http://www.example.com/';
// 第一步:替换所有./
text = text.replace(/\.\//g, baseUrl);
// 第二步:把连续多个/换成单个/
text = text.replace(/\/+/g, '/');
console.log(text); // 输出:http://www.example.com/test/abc/

额外偷懒技巧

要是你经常处理路径转换,其实不用自己写正则,用浏览器自带的URL API更省心,它会自动处理相对路径、斜杠这些细节:

var text = './test';
var baseUrl = 'http://www.example.com/';
var absoluteUrl = new URL(text, baseUrl).href;
console.log(absoluteUrl); // 输出:http://www.example.com/test

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.26 09:44:18