Base32 использует AZ и 2-7 для кодирования и добавляет дополнительный символ =
, чтобы получить кратное 8 символов, так что вы можете создать регулярное выражение, чтобы увидеть, соответствует ли строка-кандидат.
При использовании regex.exec
соответствующая строка вернет информацию о совпадении, несоответствующая строка вернет null
, поэтому вы можете использовать if
, чтобы проверить, является ли совпадение истинным или ложным.
Кодировки Base32 также всегда должны иметь длину, кратную 8, и дополнены достаточным количеством символов =
, чтобы сделать это;Вы можете проверить правильность длины, используя mod 8
-
if (str.length % 8 === 0) { /* then ok */ }
// A-Z and 2-7 repeated, with optional `=` at the end
let b32_regex = /^[A-Z2-7]+=*$/;
var b32_yes = 'AJU3JX7ZIA54EZQ=';
var b32_no = 'klajcii298slja018alksdjl';
if (b32_yes.length % 8 === 0 &&
b32_regex.exec(b32_yes)) {
console.log("this one is base32");
}
else {
console.log("this one is NOT base32");
}
if (b32_no % 8 === 0 &&
b32_regex.exec(b32_no)) {
console.log("this one is base32");
}
else {
console.log("this one is NOT base32");
}