MD5:
/^[0-9a-f]{32}$/i
SHA-1:
/^[0-9a-f]{40}$/i
MD5 или SHA-1:
/^[0-9a-f]{32}(?:[0-9a-f]{8})?$/i
Кроме того, большинство хэшей всегда представлены в шестнадцатеричном виде в нижнем регистре, поэтому вы можете рассмотреть возможность удаления модификатора i
.
Кстати, шестнадцатеричное означает основание 16:
0 1 2 3 4 5 6 7 8 9 A B C D E F = base 16
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 = base 10
Таким образом, как вы можете видеть, оно идет только от 0 до F, точно так же, как десятичное число (или основание 10) только от 0 до 9.