首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何检查字符串是否为Base64编码

如何检查字符串是否为Base64编码
EN

Stack Overflow用户
提问于 2011-12-20 14:16:25
回答 15查看 308.6K关注 0票数 234

我想解码一个Base64编码的字符串,然后将其存储在我的数据库中。如果输入不是Base64编码的,我需要抛出一个错误。

如何检查字符串是否为Base64编码?

EN

回答 15

Stack Overflow用户

回答已采纳

发布于 2011-12-20 14:39:35

您可以使用以下正则表达式来检查字符串是否构成有效的base64编码:

代码语言:javascript
运行
复制
^([A-Za-z0-9+/]{4})*([A-Za-z0-9+/]{3}=|[A-Za-z0-9+/]{2}==)?$

在base64编码中,字符集是[A-Z, a-z, 0-9, and + /]。如果剩余长度小于4,则使用'='字符填充字符串。

^([A-Za-z0-9+/]{4})*表示字符串以0个或多个base64组开头。

([A-Za-z0-9+/]{4}|[A-Za-z0-9+/]{3}=|[A-Za-z0-9+/]{2}==)$表示字符串以以下三种形式之一结束:[A-Za-z0-9+/]{4}[A-Za-z0-9+/]{3}=[A-Za-z0-9+/]{2}==

票数 293
EN

Stack Overflow用户

发布于 2016-03-06 05:23:23

从Java8开始,您可以简单地使用java.util.Base64尝试并解码该字符串:

代码语言:javascript
运行
复制
String someString = "...";
Base64.Decoder decoder = Base64.getDecoder();

try {
    decoder.decode(someString);
} catch(IllegalArgumentException iae) {
    // That string wasn't valid.
}
票数 25
EN

Stack Overflow用户

发布于 2013-11-22 21:12:41

在PHP5中尝试这样做

代码语言:javascript
运行
复制
//where $json is some data that can be base64 encoded
$json=some_data;

//this will check whether data is base64 encoded or not
if (base64_decode($json, true) == true)
{          
   echo "base64 encoded";          
}
else 
{
   echo "not base64 encoded"; 
}

将其用于PHP7

代码语言:javascript
运行
复制
 //$string parameter can be base64 encoded or not

function is_base64_encoded($string){
 //this will check if $string is base64 encoded and return true, if it is.
 if (base64_decode($string, true) !== false){          
   return true;        
 }else{
   return false;
 }
}
票数 16
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8571501

复制
相关文章

相似问题

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