转义反斜杠在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-->";

返回"&lt;!--#include virtual='backoffice\\home\\widgets\\" + el + ".asp--&gt;" 您需要转义 each 反斜杠。所以每人一个=另外2个=\\\\

如果你只想有一个反斜杠,

function addWidget(el)
    return "<!--#include virtual='backoffice\\home\\widgets\\" + el + ".asp-->";

应该工作:它返回"&lt;!--#include virtual='backoffice\home\widgets\" + el + ".asp--&gt;";

【讨论】:

我正在寻找单斜杠,但它在 IE10 中不起作用,在 chrome 和 firefox 中运行良好,当然是好旧的 IE。 你仍然可以给\u005C一个机会

以上是关于转义反斜杠在javascript中打印两个反斜杠的主要内容,如果未能解决你的问题,请参考以下文章

为啥SQL支持两个单引号以及反斜杠转义

为什么String.raw可以处理双反斜杠但是常规转义不能?

python 如何快速转义路径字符串中的斜杠

java 和 JS(javaScript)中的反斜杠正则转义

python 中的反斜杠匹配的问题

MySQL中如何插入反斜杠,反斜杠被吃掉,反斜杠转义(转)