我想在转换之前验证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/