首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用JavaScript确定字符串是否在base64中

使用JavaScript确定字符串是否在base64中
EN

Stack Overflow用户
提问于 2011-10-22 22:55:22
回答 10查看 75.9K关注 0票数 43

我使用window.atob('string')函数将字符串从base64解码为字符串。现在我想知道,有什么方法可以检查'string‘是否真的是有效的base64?如果字符串不是base64,我希望得到通知,这样我就可以执行不同的操作。

EN

回答 10

Stack Overflow用户

回答已采纳

发布于 2011-10-22 22:58:09

如果“有效”意味着“其中只有base64字符”,那么请检查/[A-Za-z0-9+/=]/

如果“有效”意味着一个“合法的”base64编码的字符串,那么你应该在最后检查=

如果“有效”意味着解码后它是合理的,那么它需要领域知识。

票数 35
EN

Stack Overflow用户

发布于 2011-10-22 23:03:04

如果你想检查它是否可以解码,你可以简单地尝试解码,看看是否失败:

代码语言:javascript
复制
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')
}
票数 62
EN

Stack Overflow用户

发布于 2015-12-03 22:24:46

这应该能起到作用。

代码语言:javascript
复制
function isBase64(str) {
    if (str ==='' || str.trim() ===''){ return false; }
    try {
        return btoa(atob(str)) == str;
    } catch (err) {
        return false;
    }
}
票数 45
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7860392

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档