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

JavaScript字符串连字符替换失效问题:代码调试与解决求助

问题排查与解决

嘿,这个问题很常见——你遇到的是JavaScript字符串的不可变性导致的!

问题根源

JavaScript中的字符串是不可变的,也就是说replace()方法不会直接修改原字符串,而是返回一个完成替换操作的新字符串。你的代码里只是调用了replace(),但没有把返回的新字符串重新赋值给str变量,所以原字符串根本没变化,输出自然还是原来的20-03-2019。

修复后的代码

只需要把替换后的结果重新赋值给str就行:

function replace(){ 
  var str='20-03-2019'; 
  str = str.replace(/-/g,'/'); // 关键:将新字符串赋值回原变量
  console.log(str); 
} 
replace();

运行这段代码,就能得到你想要的20/03/2019了。

额外说明

  • 你代码里的/-/g正则表达式是对的,g标志表示全局替换,会把所有的-都换成/;如果没有g,只会替换第一个出现的-,结果会变成20/03-2019。
  • 除了replace(),你也可以用split()+join()的方式实现同样效果,适合不太熟悉正则的场景:
    function replace(){ 
      var str='20-03-2019'; 
      str = str.split('-').join('/');
      console.log(str); 
    } 
    replace();
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.12 04:27:40