Skip to content

Instantly share code, notes, and snippets.

@allenhwkim
Last active September 23, 2024 18:30
Show Gist options
  • Save allenhwkim/f8624f5fd84cddc4c534ad2f726d1220 to your computer and use it in GitHub Desktop.
Save allenhwkim/f8624f5fd84cddc4c534ad2f726d1220 to your computer and use it in GitHub Desktop.
Check if string is base64 encoded or not
function isBase64(v) {
if (typeof v !== 'string') return false;
const regEx = /^(?:[A-Za-z0-9+\\/]{4})*(?:[A-Za-z0-9+\\/]{2}==|[A-Za-z0-9+\/]{3}=)?$/gi;
const isBase64 = regEx.test(v);
return isBase64;
}
// Test
var pngString = 'iVBORw0KGgoAAAANSUhEUgAABQAAAALQAQMAAAD1s08VAAAAA1BMVEX/AAAZ4gk3AAAAh0lEQVR42u3BMQEAAADCoPVPbQlPoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB4GsTfAAGc95RKAAAAAElFTkSuQmCC';
var jpgString = '/9j/4AAQSkZJRgABAQAAAQABAAD/2wCEACAhITMkM1EwMFFCLy8vQiccHBwcJyIXFxcXFyIRDAwMDAwMEQwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwBIjMzNCY0IhgYIhQODg4UFA4ODg4UEQwMDAwMEREMDAwMDAwRDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDP/AABEIAAYABgMBIgACEQEDEQH/xABVAAEBAAAAAAAAAAAAAAAAAAAAAxAAAQQCAwEAAAAAAAAAAAAAAgABAxQEIxIkMxMBAQAAAAAAAAAAAAAAAAAAAAARAQAAAAAAAAAAAAAAAAAAAAD/2gAMAwEAAhEDEQA/AIE7MwkbOUJDJWx+ZjXATitx2/h2bEWvX5Y0npQ7aIiD/9k='
isBase64(pngString); // true
isBase64(jpgString); // true
isBase64(''); // true
isBase64('1342234'); //false
isBase64('afQ$%rfew'); // false
isBase64('dfasdfr342'); // false
isBase64('uuLMhh'); // false
isBase64('uuLMhh=='); // true
isBase64(false); // false
isBase64({}); // false
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment