Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- 'use strict';
- function passwordValidator(pass) {
- //Check characters
- let passwordHasValidLength = validatePasswordLength(pass, 6, 10)
- //Check for symbols
- //Check if 2 digits are used
- let passwordAsciiCharacters = returnAsciiCodesArray(pass);
- //Allowed ascii ranges
- // let asciiDigitRange = 48-57;
- // let asciiUpperRange = 65-90;
- // let asciiLowerRange = 97-122;
- let passWithOnlyAllowedSymbols = filter(passwordAsciiCharacters, (ele) => {
- return (ele >= 48 && ele <= 57) || (ele >= 65 && ele <= 90) || (ele >= 97 && ele <= 122);
- });
- //Compare filtered array with old password array
- let passwordHasValidSymbols = compareArrayElements(passwordAsciiCharacters, passWithOnlyAllowedSymbols);
- //Filter just the digits out of the password and count them
- let passDigitsArray = filter(passwordAsciiCharacters, (ele) => {
- return (ele >= 48 && ele <= 57);
- });
- let allDigitsInPassword = passDigitsArray.length;
- //Conditions
- if (!passwordHasValidLength) {
- console.log('Password must be between 6 and 10 characters');
- }
- if (!passwordHasValidSymbols) {
- console.log('Password must consist only of letters and digits');
- }
- if (allDigitsInPassword < 2) {
- console.log('Password must have at least 2 digits');
- }
- if (passwordHasValidLength && passwordHasValidSymbols && allDigitsInPassword >= 2) {
- console.log('Password is valid');
- }
- //Declarations
- function returnAsciiCodesArray(string) {
- let codesArray = [];
- for (let i = 0; i < string.length; i++) {
- let ascii = string.charCodeAt(i)
- codesArray.push(ascii);
- }
- return codesArray;
- }
- function validatePasswordLength(pass, startReq, endReq) {
- return pass.length >= startReq && pass.length <= endReq;
- }
- function filter(arr, callback) {
- let newArr = [];
- for (let element of arr) {
- if (callback(element)) {
- newArr.push(element);
- }
- }
- return newArr;
- }
- function compareArrayElements(arrOne, arrTwo) {
- let bool = null;
- for (let i = 0, j = arrOne.length; i < j; i++) {
- let stringOne = arrOne[i];
- let stringTwo = arrTwo[i];
- bool = stringOne === stringTwo ? true : false;
- }
- return bool;
- }
- }
- let result = passwordValidator('Pa$s$s');
- console.log(result);
Add Comment
Please, Sign In to add comment