javascript - JavaScript 中的转义\51

标签 javascript special-characters

我的问题如下: 我有一个带有文件路径的字段: "\\random.ad.test.stuff.com\folder\level 1\51.level 2\level 3"

我想用这些信息创建一个数组

function myFunction() {
    var str = "\\random.ad.test.stuff.com\folder\level 1\51. level 2\level 3";
    var array = str.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g, "_");

    document.getElementById("demo").innerHTML = array;
}

问题是右括号的\51字符代码。所以结果是

"_random_ad_test_stuff_comfolder_level 1__. level 2_level 3".

如何转义 \51 并插入 _after .com ?

最佳答案

事后无法转义字符串。正如您所说,在字符串文字中, \51),就像您在字符串文字中键入 ) 一样;结果字符串没有区别:

console.log("\51" === ")"); // true

您必须转义文字中的字符:

var str = "\\\\random.ad.test.stuff.com\\folder\\level 1\\51. level 2\\level 3";
// --------^-^-------------------------^-------^--------^------------^
console.log(str);

请注意,这只是因为您使用的是字符串文字。如果您从某个地方读取该字符串,则根本不需要转义它。转义(在这个意义上)是一个字符串文字,而不是字符串。

<小时/>

您说过这来自 XML 文件,并询问您必须对该文件执行什么操作才能避免此问题。答案是:没什么。读入 XML 文件,当您从中获取这些文件名时,您将再次获得具有正确字符的字符串,转义适用于字符串文字,但 XML 不是字符串文字。

示例:

// "Read" the file
var xmlText = document.querySelector("#xml").textContent;

// Parse it
var oParser = new DOMParser();
var oDOM = oParser.parseFromString(xmlText, "application/xml");

// Use its contents; the information you'll get will be valid strings,
// no escaping needed
var entries = oDOM.querySelectorAll("entry");
console.log(entries[0].getAttribute("attr"));
console.log(entries[1].firstChild.nodeValue);
<script id="xml" type="text/xml"><root>
<entry attr="\\random.ad.test.stuff.com\folder\level 1\51. level 2\level 3" />
<entry>\\random.ad.test.stuff.com\folder\level 1\51. level 2\level 3</entry>
</root></script>

在该示例中,我展示了从属性或元素主体中获取字符串,这是将信息放入 XML 中的两种常用方法。

关于javascript - JavaScript 中的转义\51,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50856953/

相关文章:

javascript - 如何在拖放 Jquery UI 时更改数据属性?

javascript - GetSafeHtmlFragment 仍未按预期工作以停止 c# 中的跨站点脚本

java - 在java中删除字符串中的特殊字符?

java - 如何在Android中创建带有特殊字符的目录

java - 非法字符实体 : expansion character (code 0xe

javascript - 当我需要显示更多时,我的选择框被缩小到两个条目

JavaScript - 如何使用 EXIF 数据在网络摄像头中拍照?

javascript - Flask上的聊天应用程序(一对一实现)

smtp - 如何在 SMTP 传输中处理 Symfony Mailer 组件凭据中的特殊字符?

unix - 在Vim中插入回车符