Har*_*r27 5 javascript string processing ascii escaping
我看过其他一些具有以下内容的程序:
var string = '\x32\x20\x60\x78\x6e\x7a\x9c\x89';
Run Code Online (Sandbox Code Playgroud)
而且我不得不尝试弄乱数字和字母,以找到我想要显示的文本。
我想知道是否有一个函数来查找\x字符串的转义,例如string.toUpperCase()在JS中。我正在处理 JS,但是可以使用其他编程语言来查找ASCII \x。
如果您有想要转义的字符串,则可以使用 String.prototype.charCodeAt()
如果您的代码带有转义符,则可以对其求值以获取原始字符串。如果它是带有文字转义符的字符串,则可以使用String.fromCharCode()
如果你有'\x32\x20\x60\x78\x6e\x7a\x9c\x89',并希望"2 `xnz"再
'\x32\x20\x60\x78\x6e\x7a\x9c\x89' == "2 `xnz"
Run Code Online (Sandbox Code Playgroud)如果您有'\\x32\\x20\\x60\\x78\\x6e\\x7a\\x9c\\x89'一个带有值的文字字符串,\x32\x20\x60\x78\x6e\x7a\x9c\x89则可以通过将每对十六进制数字的十进制值传递给String.prototype.fromCharCode()
'\\x32\\x20\\x60\\x78\\x6e\\x7a\\x9c\\x89'.replace(/\\x([0-9a-f]{2})/g, function(_, pair) {
return String.fromCharCode(parseInt(pair, 16));
})
Run Code Online (Sandbox Code Playgroud)
或者,eval如果您可以确定输入的安全性并且性能并不重要1,则可以使用此选项。
eval('"\\x32\\x20\\x60\\x78\\x6e\\x7a\\x9c\\x89"')
Run Code Online (Sandbox Code Playgroud)
注意"嵌套在'输入字符串周围。
如果您知道它是一个程序,并且来自受信任的来源,则可以eval直接输入字符串,它不会提供ASCII码,但可以执行程序本身。
eval('\\x32\\x20\\x60\\x78\\x6e\\x7a\\x9c\\x89')
Run Code Online (Sandbox Code Playgroud)
请注意,您提供的输入不是程序,并且eval调用失败。
如果你有"2 `xnz",并希望'\x32\x20\x60\x78\x6e\x7a\x9c\x89'再
"2 `xnz".split('').map(function(e) {
return '\\x' + e.charCodeAt(0).toString(16);
}).join('')
Run Code Online (Sandbox Code Playgroud)| 归档时间: |
|
| 查看次数: |
5741 次 |
| 最近记录: |