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>