Detect non-printable characters in JavaScript

17.6k Views Asked by At

Is it possible to detect binary data in JavaScript?

I'd like to be able to detect binary data and convert it to hex for easier readability/debugging.


After more investigation I've realized that detecting binary data is not the right question, because binary data can contain regular characters, and non-printable characters.

Outis's question and answer (/[\x00-\x1F]/) is really the best we can do in an attempt to detect binary characters.

Note: You must remove line feeds and possibly other characters from your ascii string sequence for the check to actually work.

1

There are 1 best solutions below

3
On BEST ANSWER

If by "binary", you mean "contains non-printable characters", try:

/[\x00-\x1F]/.test(data)

If whitespace is considered non-binary data, try:

/[\x00-\x08\x0E-\x1F]/.test(data)

If you know the string is either ASCII or binary, use:

/[\x00-\x1F\x80-\xFF]/.test(data)

or:

/[\x00-\x08\x0E-\x1F\x80-\xFF]/.test(data)