日期:2014-05-16  浏览次数:20476 次

JS替换字符的简单问题
我有一类这样的地址,比如   E:\PHP\WORK\a.gif
我想把它转换成   E:\\PHP\\WORK\\a.gif
即把每个\都变成\\,请问用js怎么实现?

------解决方案--------------------
var str= "E:\\PHP\\WORK\\a.gif "
alert(str.replace(/\\/g, "\\\\ "))
------解决方案--------------------
up
------解决方案--------------------
晕,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
------解决方案--------------------
<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>
------解决方案--------------------
yixianggao(你我他,三人行必有我师焉!) 说的是错误的, 楼主别被误导.
自己参考一下转义符.

正确答案看jinjuduo(与人玫瑰,手有余香)和hbhbhbhbhb1021(天外水火(我要多努力)) 的
------解决方案--------------------
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>
------解决方案--------------------
hbhbhbhbhb1021(天外水火(我要多努力)) 的方法与jinjuduo(与人玫瑰,手有余香)是一样的都可以,只是jinjuduo(与人玫瑰,手有余香)让js自动完成了转义