isBase32.js 508 B

1234567891011121314151617181920212223
  1. import assertString from './util/assertString';
  2. import merge from './util/merge';
  3. var base32 = /^[A-Z2-7]+=*$/;
  4. var crockfordBase32 = /^[A-HJKMNP-TV-Z0-9]+$/;
  5. var defaultBase32Options = {
  6. crockford: false
  7. };
  8. export default function isBase32(str, options) {
  9. assertString(str);
  10. options = merge(options, defaultBase32Options);
  11. if (options.crockford) {
  12. return crockfordBase32.test(str);
  13. }
  14. var len = str.length;
  15. if (len % 8 === 0 && base32.test(str)) {
  16. return true;
  17. }
  18. return false;
  19. }