【发布时间】:2015-11-17 14:10:49
【问题描述】:
奇怪的东西……
我有一个字符串文字,它作为常量标记传递给我的源代码(我无法预先处理或转义它)。
例子
var username = "MYDOMAIN\tom";
username = username.replace('MYDOMAIN','');
某处的字符串包含一个反斜杠,后跟一个字符。 此时转义反斜杠为时已晚,所以我必须单独转义这些特殊字符,例如
username = username.replace(/\t/ig, 't');
但是,这在以下情况下不起作用:
var username = "MYDOMAIN\ulrike";
\u 似乎引入了一个 unicode 字符序列。 \uLRIK 不能被解释为 unicode 符号,因此 Javascript 引擎此时停止解释,而我的 replace(/\u/ig,'u') 来得太晚了。
有没有人建议或解决如何转义给定字符串文字中包含的这种非 unicode 字符序列?与“MYDOMAIN\bernd”中的 \b 类似的问题。
【问题讨论】:
-
您提供了将非法字符传递到字符串的范围。并非所有字符都可以这样转义,因此需要更改生成这些字符串的任何内容
-
Javascript 会将 \ulrike 视为无效的 Unicode 转义序列。数据需要在到达 js var 之前进行转义。
标签: javascript unicode escaping backslash