作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
在 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/
我是一名优秀的程序员,十分优秀!