转义反斜杠在javascript中打印两个反斜杠
Posted
技术标签:
【中文标题】转义反斜杠在javascript中打印两个反斜杠【英文标题】:escaping backslash printing two backslashes in javascript 【发布时间】:2013-11-10 02:51:04 【问题描述】:我只是想设置一个将成为经典 asp 包含的变量字符串,并且需要在字符串 URL 中包含反斜杠,但是用额外的“\”转义是行不通的。这一行;
function addWidget(el)
var widgetAdd = "<!--#include virtual='backoffice\\home\\widgets\\" + el + ".asp-->";
返回字符串;
"<!--#include virtual='backoffice\\home\\widgets\\example.asp-->"
我只希望字符串包含正确的 url,带有单个反斜杠而不是双斜杠。如果我删除转义的反斜杠,则字符串是;
"<!--#include virtual='backofficehomewidgetsexample.asp-->"
谢谢
【问题讨论】:
您的代码在 jsFiddle 中工作:jsfiddle.net/Lygus 它返回一个带有单斜杠的字符串 伙计,在 IE10 的所有浏览器模式和标准模式下,我在调试器中返回了双反斜杠,并且无法正常工作。知道是什么原因造成的吗? 你确实有一个单独的报价 ('
)。我想知道是否需要完成。除此之外,不确定。
我确实注意到我正在尝试解决它,当我关闭单引号时它开始正常工作,但仍然在 IE 中返回双反斜杠,我想如果它忽略它我'会好的。谢谢你的帮助。
【参考方案1】:
我看不出你想要什么......你想要双反斜杠吗?如果是,请这样做
function addWidget(el)
return "<!--#include virtual='backoffice\\\\home\\\widgets\\\\" + el + ".asp-->";
返回"<!--#include virtual='backoffice\\home\\widgets\\" + el + ".asp-->"
您需要转义 each 反斜杠。所以每人一个=另外2个=\\\\
如果你只想有一个反斜杠,
function addWidget(el)
return "<!--#include virtual='backoffice\\home\\widgets\\" + el + ".asp-->";
应该工作:它返回"<!--#include virtual='backoffice\home\widgets\" + el + ".asp-->";
【讨论】:
我正在寻找单斜杠,但它在 IE10 中不起作用,在 chrome 和 firefox 中运行良好,当然是好旧的 IE。 你仍然可以给\u005C
一个机会以上是关于转义反斜杠在javascript中打印两个反斜杠的主要内容,如果未能解决你的问题,请参考以下文章
为什么String.raw可以处理双反斜杠但是常规转义不能?