Skip to content

Determine if string is in base64 using JavaScript

I’m using the window.atob('string') function to decode a string from base64 to a string. Now I wonder, is there any way to check that ‘string’ is actually valid base64? I would like to be notified if the string is not base64 so I can perform a different action.

Answer

If “valid” means “only has base64 chars in it” then check against /[A-Za-z0-9+/=]/.

If “valid” means a “legal” base64-encoded string then you should check for the = at the end.

If “valid” means it’s something reasonable after decoding then it requires domain knowledge.