在JavaScript中检测不可打印的字符

dee*_*ell 10 javascript binary hex ascii non-printable

是否可以在JavaScript中检测二进制数据?

我希望能够检测二进制数据并将其转换为十六进制以便于阅读/调试.


经过更多调查后,我意识到检测二进制数据不是正确的问题,因为二进制数据可以包含常规字符和不可打印的字符.

Outis的问题和答案(/ [\ x00-\x1F] /)是我们在尝试检测二进制字符时所能做的最好的事情.

注意:您必须从ascii字符串序列中删除换行符和可能的其他字符,以使检查实际工作.

out*_*tis 21

如果用"二进制"表示"包含不可打印的字符",请尝试:

/[\x00-\x1F]/.test(data)
Run Code Online (Sandbox Code Playgroud)

如果将空格视为非二进制数据,请尝试:

/[\x00-\x08\x0E-\x1F]/.test(data)
Run Code Online (Sandbox Code Playgroud)

如果您知道字符串是ASCII或二进制,请使用:

/[\x00-\x1F\x80-\xFF]/.test(data)
Run Code Online (Sandbox Code Playgroud)

要么:

/[\x00-\x08\x0E-\x1F\x80-\xFF]/.test(data)
Run Code Online (Sandbox Code Playgroud)

  • 我需要Tab来通过测试,所以我使用`/ [\ x00-\x09\x0E-\x1F] /` (2认同)