返回
正则表达式教程:Base64格式校验
正则表达式
2024-02-28 15:52:38
一、正则解释
/^\s*data:(?:[a-z]+\/[a-z0-9-+.]+(?:;[a-z-]+=[a-z0-9-]+)?)?(?:;base64)?,([a-z0-9!/^\s*data:(?:[a-z]+\/[a-z0-9-+.]+(?:;[a-z-]+=[a-z0-9-]+)?)?(?:;base64)?,([a-z0-9!$&',()*+;=\-._~:@/?%\s]*?)\s*$/i
amp;',()*+;=\-._~:@/?%\s]*?)\s*$/i
正则解析:
^\s*
:匹配开头可选空白字符。data:
:匹配字符串"data:”。(?:[a-z]+\/[a-z0-9-+.]+)
:匹配数据类型和子类型(例如,image/gif
)。(?:;[a-z-]+=[a-z0-9-]+)?
:匹配可选参数(例如,charset=UTF-8
)。(?:;base64)?
:匹配可选的“base64”分隔符。([a-z0-9!$&',()*+;=\-._~:@/?%\s]*?)
:匹配base64编码数据(非贪婪模式)。\s*$
:匹配结尾可选空白字符。i
:不区分大小写。
二、使用场景
此正则表达式可用于验证:
- 验证HTML或CSS中的data URI是否为base64格式。
- 解析和提取base64编码数据。
- 确保数据的完整性。
三、代码示例
JavaScript
const regex = /^\s*data:(?:[a-z]+\/[a-z0-9-+.]+(?:;[a-z-]+=[a-z0-9-]+)?)?(?:;base64)?,([a-z0-9!const regex = /^\s*data:(?:[a-z]+\/[a-z0-9-+.]+(?:;[a-z-]+=[a-z0-9-]+)?)?(?:;base64)?,([a-z0-9!$&',()*+;=\-._~:@/?%\s]*?)\s*$/i;
const isBase64 = (dataURI) => {
return regex.test(dataURI);
};
amp;',()*+;=\-._~:@/?%\s]*?)\s*$/i;
const isBase64 = (dataURI) => {
return regex.test(dataURI);
};
Java
import java.util.regex.Pattern;
public class Base64Validator {
private static final Pattern PATTERN = Pattern.compile("^\s*data:(?:[a-z]+\/[a-z0-9-+.]+(?:;[a-z-]+=[a-z0-9-]+)?)?(?:;base64)?,([a-z0-9!import java.util.regex.Pattern;
public class Base64Validator {
private static final Pattern PATTERN = Pattern.compile("^\s*data:(?:[a-z]+\/[a-z0-9-+.]+(?:;[a-z-]+=[a-z0-9-]+)?)?(?:;base64)?,([a-z0-9!$&',()*+;=\-._~:@/?%\s]*?)\s*$/i");
public static boolean isValid(String dataURI) {
return PATTERN.matcher(dataURI).matches();
}
}
amp;',()*+;=\-._~:@/?%\s]*?)\s*$/i");
public static boolean isValid(String dataURI) {
return PATTERN.matcher(dataURI).matches();
}
}
PHP
<?php
$regex = "/^\s*data:(?:[a-z]+\/[a-z0-9-+.]+(?:;[a-z-]+=[a-z0-9-]+)?)?(?:;base64)?,([a-z0-9!<?php
$regex = "/^\s*data:(?:[a-z]+\/[a-z0-9-+.]+(?:;[a-z-]+=[a-z0-9-]+)?)?(?:;base64)?,([a-z0-9!$&',()*+;=\-._~:@/?%\s]*?)\s*$/i";
function isBase64($dataURI) {
return preg_match($regex, $dataURI) === 1;
}
?>
amp;',()*+;=\-._~:@/?%\s]*?)\s*$/i";
function isBase64($dataURI) {
return preg_match($regex, $dataURI) === 1;
}
?>
Python
import re
regex = r"^\s*data:(?:[a-z]+\/[a-z0-9-+.]+(?:;[a-z-]+=[a-z0-9-]+)?)?(?:;base64)?,([a-z0-9!import re
regex = r"^\s*data:(?:[a-z]+\/[a-z0-9-+.]+(?:;[a-z-]+=[a-z0-9-]+)?)?(?:;base64)?,([a-z0-9!$&',()*+;=\-._~:@/?%\s]*?)\s*$/i
def is_base64(dataURI):
return re.match(regex, dataURI) is not None
amp;',()*+;=\-._~:@/?%\s]*?)\s*$/i
def is_base64(dataURI):
return re.match(regex, dataURI) is not None
测试文本
data:image/gif;base64,xxxx==
验证结果: true