一直在玩Javascript,并发现了转义(\x),这似乎很有趣。
为了澄清,我发现我可以用转义+ x将两个数字转换成一个字母,
和"\x51"一样,输出是Q
一直在寻找这个特定的话题,但我不知道从哪里开始,因为我甚至不知道他们怎么称呼它,就像我知道在PHP和Javascript中反斜杠的用途,但我不知道它与x结合时会做什么
现在我的问题是,是否可以在X之后添加一个动态数字值?
就像我试图创建这样一个函数,但这似乎是不可能的,因为它看起来需要在x之后有两个字符(数字或字母)。
function __num_string( num ) {
return "\x"+num;
} __num_string( 51 )将返回Q
reality Uncaught SyntaxError: Unexpected token ILLEGAL
如果可能的话,我很感谢你的澄清,
谢谢
发布于 2016-02-03 21:28:00
是的,这是可能的,但是有一个更好的方法
return String.fromCharCode(num);..。其中num是您想要得到的字符的Unicode值。
不过,从技术上讲,使用eval实现您的函数是可能的
function __num_string( num ) {
if (/^[a-f0-9]{1,2}$/i.test(num)) {
return eval('"\\x' + num + '"');
}
}注意:num应该是一个表示十六进制值的字符串。
关于你的错误:这个..。
'\x'..。在技术上是无效字符串。解析字符串文字时,解析器期望序列\x后面跟着[0-9a-f]字符范围。然而,在您的例子中,没有类似的地方,因此Unexpected token ILLEGAL。
发布于 2016-02-03 21:27:56
字符串转义是一个语法特性,是字符串文字的一部分。
在运行时这样做是没有意义的。
你要找的是String.fromCharCode,它的功能和听起来完全一样。
https://stackoverflow.com/questions/35188026
复制相似问题