Javascript如何在字符串文本中转义\u
奇怪的事 我有一个字符串文本作为常量标记传递给源代码(我不能预先处理或转义它) 范例Javascript如何在字符串文本中转义\u,javascript,unicode,escaping,backslash,Javascript,Unicode,Escaping,Backslash,奇怪的事 我有一个字符串文本作为常量标记传递给源代码(我不能预先处理或转义它) 范例 var username = "MYDOMAIN\tom"; username = username.replace('MYDOMAIN',''); 字符串某处包含一个反斜杠,后跟一个字符。 现在退出反斜杠已经太晚了,所以我必须单独退出这些特殊字符,比如 username = username.replace(/\t/ig, 't'); 但是,这在以下场景中不起作用: var username = "MYD
var username = "MYDOMAIN\tom";
username = username.replace('MYDOMAIN','');
字符串某处包含一个反斜杠,后跟一个字符。
现在退出反斜杠已经太晚了,所以我必须单独退出这些特殊字符,比如
username = username.replace(/\t/ig, 't');
但是,这在以下场景中不起作用:
var username = "MYDOMAIN\ulrike";
\u似乎引入了unicode字符序列\uLRIK不能解释为unicode符号,因此Javascript引擎此时停止解释,而我的替换(/\u/ig,'u')来得太迟
有人对如何转义包含在给定字符串文字中的非unicode字符序列提出了建议或解决方法吗?类似于“MYDOMAIN\bernd”中的\b似乎也存在类似问题
我有一个传递到源代码的字符串文本
假设没有任何<或>,将其移动到HTML控件(而不是脚本块)或元素中,并使用JavaScript读取值。差不多
<div id="myServerData">
MYDOMAIN\tom
</div>
重要信息:注入未转载的内容,用户可以控制内容(比如这是在其他页面中输入的数据)是一种安全风险。这适用于您是在脚本中还是在HTML中注入它编写
var username=“MYDOMAIN\ulrike”代码>将抛出语法错误。我想这根绳子是从什么地方来的
我建议创建一些html元素,并将其innerHTML设置为接收的值,然后将其拾取
有类似于:
<div id="demo"></div>
然后执行document.getElementById(“demo”).innerHTML=username代码>
然后从那里读取值作为document.getElementById(“demo”).innerHTML代码>
我想这应该行得通
重要提示:请确保这不会使网页暴露于脚本注入。如果是,则此方法不好,不要使用。您提供了将非法字符传递到字符串的范围。并不是所有的字符都能像这样逃脱,所以不管生成字符串的方式需要改变,JavaScript都会将ULRIKE视为无效的Unicode转义序列。在数据到达js变量之前,需要对其进行转义。
<div id="demo"></div>