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

时间:2017-08-29 04:56:35

标签: javascript string javascript-objects innerhtml

WRW跟随javscript code1为innerhTML分配一个字符串,但Code2将字符串分开,即一旦遇到“\”(backslsh)后跟小写字母,它就会终止字符串。但如果我用大写字母替换它或添加2 \它工作正常。

  

我有一个我无法改变字符串的情感:“root \ uMBUS”,但是我   可以做一些JAVASCRIPT THINGY确保弦被分配为A   单线到内线。

代码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.

1 个答案:

答案 0 :(得分:2)

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

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

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

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

var stuff = '\u2700';

如果你检查stuff,你应该看到剪刀dingbat角色。然后尝试以下操作,并观察您收到的错误消息:

var stuff = '\uMBUS';