js中关于正斜杠“/”和反斜杠“\”的区别,以及如何将路径中的正反斜杠互相替换

一.首先网上关于正反斜杠的博客已经有很多了,这里不叙述太多,进入正题。

对于很多新手来讲,windows的dos系统已经逐渐淘汰,接触的并不多,在dos中使用反斜杠“\”作为分隔符,而在Unix中使用斜杆/作为路径分隔符,最新的web应用使用在Unix系统上面,所以目前所有的网络地址都采用 斜杆/ 作为分隔符。(这段看不懂的可以忽略);

  • 在前端开发中,如果涉及background-image:url(/Image/Control/title.jpg),这种路径,必须要用正斜杠表示,否则会出错;而在标签img中文件路径,/ 和 \ 是等效的,也就是说用哪个都可以,不过我们习惯用正斜杠。
  • 在网络地址http中,必须使用正斜杠;

正反斜杠互相替换(重点)

1.正斜杠全部替换成反斜杠例如:将var a =”a/b/c/d”;我们需要这样做:
var b = a.replace(/\//g, “\”); 字符串不可变,这里需要用到转义符\才能成功转换
alert(b);
2.反斜杠全部替换成正斜杠(难点,网络上的很多方法都不能解决)例如:将var a =”a\b\c\d”;这里如果按照:
alert(a.replace(/\\/g, “\/”);这种转换是不会成功的,原因是在前端字符串中如果有一个\,打印时只会显示abcd,没有中间的\,那么如何转换呢?其实有两个方法:
(1).让后端转换-。-
(2)在body中虚构一个input标签,设置隐藏,将字符串当其value值。然后在js中替换

    <input name="text1" id="text1" value="D:\MyDesktop\ruby\baby\ok" style="display: none">

    <script>
        var str=document.getElementById("text1").value;      
        alert(str);
        var str1 = str.replace(/\\/g,"/"); 
        alert(str1);
</script>

究其原因,不要问哥,不过可以完美解决替换问题。

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值