var str="E:\\PHP\\WORK\\a.gif"
alert(str.replace(/\\/g,"\\\\"))

解决方案 »

  1.   

    晕,JS 无能为力滴,lz 还是在 server 端处理吧!不信自己看,有没有 \ 长度都是一样滴,正则根本无法配,以下结果出自 IE 7!var s = "E:\PHP\WORK\a.gif";
    var s1 = "E:PHPWORKa.gif";
    alert(s.length); // 14
    alert(s1.length); // 14
      

  2.   

    <div id="wc">E:\PHP\WORK\a.gif</div>
    <script type="text/javascript" defer="defer">
    var wc = document.getElementById("wc");
    alert(wc.innerHTML.replace(/\\/g, "\\\\"));
    </script>
      

  3.   

    yixianggao(你我他,三人行必有我师焉!)  说的是错误的, 楼主别被误导.
    自己参考一下转义符.正确答案看jinjuduo(与人玫瑰,手有余香)和hbhbhbhbhb1021(天外水火(我要多努力)) 的
      

  4.   

    To 0009(夏天以南) hbhbhbhbhb1021(天外水火(我要多努力)) 斑竹滴写法确实存在俺说滴问题,因为他使用的也是字符串!
        var str="E:\\PHP\\WORK\\a.gif"
        alert(str.length); // 17, 实际长度为 20, 因为 \\ 已被转义了一次。如果像俺那么写肯定是没戏,因为字符串直接进行了转义!而 jinjuduo(与人玫瑰,手有余香) 的写法确实可行,但是不一定与楼主滴使用环境相辅!因此不能说俺是误导,哈大家说滴都有道理! <body>
      <input type="hidden" id="hidPath" value="E:\PHP\WORK\a.gif" />
      <script type="text/javascript">
      <!--
    var s = document.getElementById("hidPath").value;
    var re = /\\/g;
    alert(s.length); // 17
    var s1 = s.replace(re, "\\\\");
    alert(s1.length); // 20
    alert(s1); // right result
      //-->
      </script>
     </body>
      

  5.   

    hbhbhbhbhb1021(天外水火(我要多努力)) 的方法与jinjuduo(与人玫瑰,手有余香)是一样的都可以,只是jinjuduo(与人玫瑰,手有余香)让js自动完成了转义