Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/api/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用javascript字符串函数将\替换为\\_Javascript_String - Fatal编程技术网

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

如何使用javascript字符串函数将\替换为\\,javascript,string,Javascript,String,我有以下文件路径 var imagepath="C:\Documents and Settings\Mahesh\Desktop\images\advts.png" 如何将\替换为\以便打印 var imagepath="C:\\Documents and Settings\\Mahesh\\Desktop\\images\\advts.png" 您需要在每次出现时转义\字符时使用该方法: imagepath = imagepath.replace(/\\/g, "\\\\"); //-&g

我有以下文件路径

var imagepath="C:\Documents and Settings\Mahesh\Desktop\images\advts.png"
如何将\替换为\以便打印

var imagepath="C:\\Documents and Settings\\Mahesh\\Desktop\\images\\advts.png"
您需要在每次出现时转义
\
字符时使用该方法:

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

如果使用单个反斜杠字符定义了
imagepath
,则这些字符将与后面的字符一起计算为转义序列。现在替换反斜杠已经太晚了,因为它们已从结果字符串中删除。

这是一个字符串文本。。当它被分配到imagepath时,转义序列已经被解析和处理,反斜杠不再存在于字符串中。你只要把它们放在第一位就行了

为了证明我的意思:

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

在那个阶段没有办法解决这个问题。

您可以使用string
replace()
方法

例如:

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

Upate如上所述,一旦路径被分配给
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>

函数init(){
var imagepath=“C:\Documents and Settings\Mahesh\Desktop\images\advts.png”
警报(imagepath.replace(/\\/g,“\\\\”);
}

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

只需在var imagepath初始化后添加即可

var imagepath=imagepath.replace("\", "\\");
返回图像路径

试试这个:

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

如何生成该行?解决方案应该在服务器端,在JavaScript之前。使用正则表达式很难用其他字符串替换“/”。所以我们可以使用
String.replaceAll()
。来源:谢谢你的回复,为什么你要用四个\\\\overhere@mahesh:在JS字符串和正则表达式文字语法中,\是转义字符。因此,它需要自己逃脱。字符串或正则表达式中所需的每一个文本\都需要另一个\在其前面。此处提到的代码不会插入\\,而是将\替换为空,如C:Documents和SettingsHeshDeskTopImagesAdvts。png@mahesh:重读我答案的最后部分和/或reko_t的答案。删除这些斜杠的不是这段代码,它们不在字符串中。如果文件路径的定义与问题中的定义相同,则每个
`都需要一个额外的
`在前面,就像问题的第二个示例-
C:\\Documents and Settings\\\…
。如果它确实起作用,则只会替换第一个反斜杠。对于全局替换,您需要使用正则表达式。@Andy E,谢谢,我更新的帖子使用正则表达式表明我的第一个或第二个解决方案都不起作用……他们想用
\\
替换
\
,而不是
/
替换
-
。在这里发布之前,您自己试过吗?