JSFiddle - React, Tailwind, and code Playground

by Alexey Demin

JavaScript

class PasswordChecker {

  static isNumber(char) {
    let codePoint = char.codePointAt(0);
    return codePoint > 47 && codePoint < 58;
  }
  
  static isSpecial(char) {
    let codePoint = char.codePointAt(0);
    return
    // !"#$%&'()*+,-./
    (codePoint > 32 && codePoint < 48) ||
    // :;<=>?@
    (codePoint > 57 && codePoint < 65);
  }
  
  static isUpperCase(char) {
    return !isNumber(char) && !isSpecial(char) && char === char.toUpperCase();
  }
  
  static isLowerCase(char) {
    return !isNumber(char) && !isSpecial(char) && char === char.toLowerCase();
  }

  static checkers {
    "getNumberCount": function(chars) {
      return chars.filter(isNumber).length;
    },
    "getUpperCaseCharsCount": function(chars) {
      let count = 0;
      for(const char of chars) {
        let codePoint = char.codePointAt(0);
        if(codePoint > 47 && codePoint < 58) {
          count++;
        }
      }
      return count;
      return !isNumber(char) && !isSpecial(char) && char === char.toUpperCase();
    }
  }
  
  constructor(password) {
    setPassword(password);
  }
  
  setPassword(password) {
    if(password == null || password === '') {
      throw 'password is null or empty';
    }
    this.password = password;
    this.passwordChars = Array.from(password);
  }
  
  isUpperCaseChecked(isChecked) {
    if(isChecked == null || isChecked === '') {
      throw 'isChecked is null or empty';
    }
    this.isUpperCaseChecked = isChecked;
  }
  
  isLowerCaseChecked(isChecked) {
    this.isLowerCaseChecked = isChecked;
  }
  
  isDigitsChecked(isChecked) {
    this.isDigitsChecked = isChecked;
  }
  
  isSpecialsChecked(isChecked) {
    this.isSpecialsChecked = isChecked;
  }
}

const
specialCharacters = [',', ''],
passwords = [
  'lowercase', 'withümlautß', 'UPPERCASE', 'withÄmlautß', '0123456789',
  'aA42!', '*', ' ', 'a&9', 'a!42B', 'ÜÄÖß'
],
isAllowed = function(char) {
  let codePoint = char.codePointAt(0);
},
isNumber = function(char) {
  let codePoint...