如何使用javascript字符串函数替换\ \\

时间:2010-10-12 10:29:45

标签: javascript string

我有以下文件路径

var imagepath="C:\Documents and Settings\Mahesh\Desktop\images\advts.png"

如何用\替换\以便打印

var imagepath="C:\\Documents and Settings\\Mahesh\\Desktop\\images\\advts.png"

5 个答案:

答案 0 :(得分:8)

您需要使用replace()方法,同时在每次出现时转义\字符:

imagepath = imagepath.replace(/\\/g, "\\\\");
//-> "C:\\Documents and Settings\\Mahesh\\Desktop\\images\\advts.png"

如果使用单个反斜杠字符定义imagepath,则会将这些字符与后面的字符一起计算为转义序列。此时,在从生成的字符串中删除反斜杠时更换反斜杠为时已晚。

答案 1 :(得分:2)

它是一个字符串文字。当它被分配给imagepath时,转义序列已经被解析和处理,并且字符串中不再存在反斜杠。你必须首先将它们放在字符串中。

说明我的意思:

>>> var imagepath="C:\Documents and Settings\Mahesh\Desktop\images\advts.png"
>>> imagepath
"C:Documents and SettingsMaheshDesktopimagesadvts.png"

在那个阶段无法解决问题。

答案 2 :(得分:1)

您可以使用字符串replace()方法。 Replace on W3Schools.com

示例:

var imagepath="C:\Documents and Settings\Mahesh\Desktop\images\advts.png"
document.write(imagepath.replace("\\", "\\\\"));

Upate 正如reko_t所述,一旦将路径分配给imagepath,它就是经过处理的文字。 \个字符消失。我刚用这个例子测试了我的代码,遗憾的是没有办法修复它。

<html>
    <head>
        <script type="text/javascript">
            function init() {
                var imagepath="C:\Documents and Settings\Mahesh\Desktop\images\advts.png"
                alert(imagepath.replace(/\\/g, "\\\\"));
            }
        </script>
    </head>
    <body onload="init()">

    </body>
</html>

唯一的方法是在服务器端将\替换为\\,并在将其呈现给需要javascript使用的javascript之前将其分配给imagepath

答案 3 :(得分:-1)

只需在var imagepath initialisation之后添加

var imagepath=imagepath.replace("\", "\\");

返回imagepath;

答案 4 :(得分:-3)

试试这个:

str.replace(new RegExp('/', 'g'),'-')