我有以下文件路径
var imagepath="C:\Documents and Settings\Mahesh\Desktop\images\advts.png"
如何用\替换\以便打印
var imagepath="C:\\Documents and Settings\\Mahesh\\Desktop\\images\\advts.png"
答案 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'),'-')