【问题标题】:Is there a RegEx to validate a Base32 :: RFC 3548是否有正则表达式来验证 Base32 :: RFC 3548
【发布时间】:2015-02-06 09:17:24
【问题描述】:

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

【问题讨论】:

  • @BreyndotEchse - 不同之处在于 base64 被填充到 4 字节块中,而 base32 被填充到 8 字节块中。两者都用= 填充。 编辑:评论不见了,但这里是它引用的帖子:stackoverflow.com/a/475217/477563

标签: php regex rfc


【解决方案1】:

应该这样做:

^(?:[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);

【讨论】:

    猜你喜欢
    • 2012-02-09
    • 1970-01-01
    • 2010-09-07
    • 2020-02-04
    • 2011-08-02
    • 1970-01-01
    • 2013-11-01
    • 2023-03-07
    • 1970-01-01
    相关资源
    最近更新 更多