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

Backslash followed by a lowercase alphabet in javascript string is breaking the string

Javscript code1 之后的 WRT 将单个字符串分配给 innerhTML,但 Code2 将字符串分开,即一旦遇到“\”(backslsh)后跟 小写字母[=23=,它就会终止字符串] 信件。但如果我用大写字母替换它或添加 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';