javascipt replace 对\斜杠的处置

javascipt replace 对\斜杠的处理

<!DOCTYPE html>
<html>
<head>
<meta charset="GB18030">
<title>Insert title here</title>
<script type="text/javascript">
function init(){
        var str1=document.getElementById("text1").value;
        var str2 = "D:\MyDesktop\ruby\baby\ok";
          //alert(str);
          str1=str1.replace(/\\/g,'/');
          str2=str2.replace(/\\/g,'/');

          alert(str1+"  "+str2);
}
</script>
</head>
<body onload="init();" >
 <input id="text1" name="text1" value="D:\MyDesktop\ruby\baby\ok">
</body>
</html>

为什么replace从文本框中取到的值中可以用替换将"\"给替换掉,而我声明一个字符串却不行呢?
这是为什么?
------解决思路----------------------
一个问题是1#和2#兄台所说的要加斜杠转义斜杠本身js才能识别成一个斜杠
另一个问题就是你的第9行代码(var str2 = "D:\MyDesktop\ruby\baby\ok";)是写在js里面的
第19行(<input id="text1" name="text1" value="D:\MyDesktop\ruby\baby\ok">)是写在html里面的
在js当中那个斜杠才会是被认为是转义字符与后面字符结合产生特殊作用。
在js当中你写alert("1111\r2222");在页面弹框是一行1和一行2而且分两行显示的
在html当中那就是怎么写的怎么显示了。r前面斜杠不会与r结合产生特殊意义。
在你的alert(str1+"  "+str2);弹出时你也应该注意到了str2的字符换行了。因为红色的r被绿色的斜杠转义了

------解决思路----------------------
引用:
Quote: 引用:

var str2 = "D:\\MyDesktop\\ruby\\baby\\ok";

\\双斜杠表示一根斜杠,这个我是知道的,我发这个贴的原因主要是因为,js声明的内容带斜杠,使用替换函数有问题,
反而放在html文本框中,使用替换却没事,这个问题就比较纳闷了。

在js当中定义的斜杠在加载html页面时被js被解析识别。然而在html当中斜杠不会被页面解析的
当js获取后会当成字符保留起来(js从页面当中获取的所有东西都是以字符串形式保存在内存当中)
进行下面逻辑运算。