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...