javascript - javascript 字符串中后跟小写字母的反斜杠破坏了字符串

标签 javascript string javascript-objects innerhtml

在 javscript code1 之后的 WRT 将单个字符串分配给 innerhTML,但 Code2 将字符串分隔开,即它会在遇到“\”(backslsh)后跟一个小写字母时立即终止字符串。但如果我用大写字母替换它或添加 2\它工作正常。

I've a sitiation where i can't alter the string: "root\uMBUS", BUT I CAN DO SOME JAVASCRIPT THINGY TO MAKE SURE THE STRING IS ASSIGNED AS A SINGLE STRING TO INNERHTML.

代码1:

function ABC() {  document.getElementById('abc').innerHTML ='<th>"root\UMBUS"</th>';}  
// Works fine 'coz \ is followed by a uppercase alphabet.

代码 2:

function ABC2() {  document.getElementById('abc2').innerHTML ='<th>"root\uMBUS"</th>';}
    // String breaks 'coz \ is followed by a lowercase alphabet.

最佳答案

我相信您的 JavaScript 引擎正在将 \uMBUS 解释为 Unicode 序列。除此之外,\uMBUS 不是有效的 Unicode 序列。为防止这种情况发生,您可以尝试转义反斜杠:

function ABC2() {  document.getElementById('abc2').innerHTML ='<th>"root\\uMBUS"</th>';}
                                                                        ^^ escape \\u here

通过使用文字反斜杠,序列 \uMBUS 也应该被解释为文字。

要确认我的声明,只需在任何 JS 引擎上尝试以下代码片段:

var stuff = '\u2700';

如果您检查 stuff,您应该会看到一个剪刀标志性字符。然后尝试以下操作,并观察您收到的错误消息:

var stuff = '\uMBUS';

关于javascript - javascript 字符串中后跟小写字母的反斜杠破坏了字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45930935/

相关文章:

jquery - 正则表达式,用jQuery删除字符串中的最后一个特定字符

php - javascript不读取字符

python - 字符串格式化 - Python

javascript - 如何从对象初始化关联数组?

PHP POST 通过 AJAX 循环通过 javascript 发送对象文字

javascript,如何更改数组中元素的时间戳?

javascript - 获取类型错误 : e is undefined with js addon datetimepicker

javascript - 使用 webrtc 将鼠标点击发送到另一台计算机

javascript - 异步并等待获取请求

javascript - 使用 lodash groupBy 以正确的方式构建数组