我使用window.atob('string')函数将字符串从base64解码为字符串。现在我想知道,有什么方法可以检查'string‘是否真的是有效的base64?如果字符串不是base64,我希望得到通知,这样我就可以执行不同的操作。
发布于 2011-10-22 22:58:09
如果“有效”意味着“其中只有base64字符”,那么请检查/[A-Za-z0-9+/=]/。
如果“有效”意味着一个“合法的”base64编码的字符串,那么你应该在最后检查=。
如果“有效”意味着解码后它是合理的,那么它需要领域知识。
发布于 2011-10-22 23:03:04
如果你想检查它是否可以解码,你可以简单地尝试解码,看看是否失败:
try {
window.atob(str);
} catch(e) {
// something failed
// if you want to be specific and only catch the error which means
// the base 64 was invalid, then check for 'e.code === 5'.
// (because 'DOMException.INVALID_CHARACTER_ERR === 5')
}发布于 2015-12-03 22:24:46
这应该能起到作用。
function isBase64(str) {
if (str ==='' || str.trim() ===''){ return false; }
try {
return btoa(atob(str)) == str;
} catch (err) {
return false;
}
}https://stackoverflow.com/questions/7860392
复制相似问题