javascipt replace 对\斜杠的处理

zjg1995 2015-01-30 11:37:00

<!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从文本框中取到的值中可以用替换将"\"给替换掉,而我声明一个字符串却不行呢?
这是为什么?
...全文
408 6 打赏 收藏 举报
写回复
6 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
slwsss 2015-01-30
  • 打赏
  • 举报
回复
var str2 = "D:\\MyDesktop\\ruby\\baby\\ok";
似梦飞花 2015-01-30
  • 打赏
  • 举报
回复
声明的需要\\ 否则是对你\后的那个字符转义 而不是\
zjg1995 2015-01-30
  • 打赏
  • 举报
回复
引用 5 楼 u010036886 的回复:
[quote=引用 4 楼 zjg1995 的回复:] [quote=引用 2 楼 slwsss 的回复:] var str2 = "D:\\MyDesktop\\ruby\\baby\\ok";
\\双斜杠表示一根斜杠,这个我是知道的,我发这个贴的原因主要是因为,js声明的内容带斜杠,使用替换函数有问题, 反而放在html文本框中,使用替换却没事,这个问题就比较纳闷了。[/quote] 在js当中定义的斜杠在加载html页面时被js被解析识别。然而在html当中斜杠不会被页面解析的 当js获取后会当成字符保留起来(js从页面当中获取的所有东西都是以字符串形式保存在内存当中) 进行下面逻辑运算。 [/quote] 原来如此,明白了。谢谢解答。
闪闪放光芒 2015-01-30
  • 打赏
  • 举报
回复
引用 4 楼 zjg1995 的回复:
[quote=引用 2 楼 slwsss 的回复:] var str2 = "D:\\MyDesktop\\ruby\\baby\\ok";
\\双斜杠表示一根斜杠,这个我是知道的,我发这个贴的原因主要是因为,js声明的内容带斜杠,使用替换函数有问题, 反而放在html文本框中,使用替换却没事,这个问题就比较纳闷了。[/quote] 在js当中定义的斜杠在加载html页面时被js被解析识别。然而在html当中斜杠不会被页面解析的 当js获取后会当成字符保留起来(js从页面当中获取的所有东西都是以字符串形式保存在内存当中) 进行下面逻辑运算。
zjg1995 2015-01-30
  • 打赏
  • 举报
回复
引用 2 楼 slwsss 的回复:
var str2 = "D:\\MyDesktop\\ruby\\baby\\ok";
\\双斜杠表示一根斜杠,这个我是知道的,我发这个贴的原因主要是因为,js声明的内容带斜杠,使用替换函数有问题, 反而放在html文本框中,使用替换却没事,这个问题就比较纳闷了。
闪闪放光芒 2015-01-30
  • 打赏
  • 举报
回复
一个问题是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被绿色的斜杠转义了
发帖
JavaScript

8.7w+

社区成员

Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
帖子事件
创建了帖子
2015-01-30 11:37
社区公告
暂无公告