我想在转换之前验证Base32代码。
有没有办法做到这一点,例如正则表达式?
我需要通过RFC 3548遵循这些标准

最佳答案

这应该做到这一点:

^(?:[A-Z2-7]{8})*(?:[A-Z2-7]{2}={6}|[A-Z2-7]{4}={4}|[A-Z2-7]{5}={3}|[A-Z2-7]{7}=)?$

Demo
(?:[A-Z2-7]{8})*部分处理40位序列。第二部分处理规范指定的最后字节。请注意,此模式也将接受一个空字符串(0个字节)。

在PHP中,将它与preg_match一起使用:
$isMatch = preg_match('#^(?:[A-Z2-7]{8})*(?:[A-Z2-7]{2}={6}|[A-Z2-7]{4}={4}|[A-Z2-7]{5}={3}|[A-Z2-7]{7}=)?$#', $input);

关于php - 是否有RegEx来验证Base32::RFC 3548,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/27362713/

10-13 08:46