Advertisement
atanasovetr

js_validations_homework

May 30th, 2021
1,275
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. function alertValidIBAN(iban) {
  2.     if(isValidIBANNumber(iban)){
  3.       return true;
  4.     }
  5.     return false;
  6. }
  7.  
  8. function isValidIBANNumber(input) {
  9.     var CODE_LENGTHS = {
  10.         AD: 24, AE: 23, AT: 20, AZ: 28, BA: 20, BE: 16, BG: 22, BH: 22, BR: 29,
  11.         CH: 21, CR: 21, CY: 28, CZ: 24, DE: 22, DK: 18, DO: 28, EE: 20, ES: 24,
  12.         FI: 18, FO: 18, FR: 27, GB: 22, GI: 23, GL: 18, GR: 27, GT: 28, HR: 21,
  13.         HU: 28, IE: 22, IL: 23, IS: 26, IT: 27, JO: 30, KW: 30, KZ: 20, LB: 28,
  14.         LI: 21, LT: 20, LU: 20, LV: 21, MC: 27, MD: 24, ME: 22, MK: 19, MR: 27,
  15.         MT: 31, MU: 30, NL: 18, NO: 15, PK: 24, PL: 28, PS: 29, PT: 25, QA: 29,
  16.         RO: 24, RS: 22, SA: 24, SE: 24, SI: 19, SK: 24, SM: 27, TN: 24, TR: 26,  
  17.         AL: 28, BY: 28, CR: 22, EG: 29, GE: 22, IQ: 23, LC: 32, SC: 31, ST: 25,
  18.         SV: 28, TL: 23, UA: 29, VA: 22, VG: 24, XK: 20
  19.     };
  20.     var iban = String(input).toUpperCase().replace(/[^A-Z0-9]/g, ''), // keep only alphanumeric characters
  21.             code = iban.match(/^([A-Z]{2})(\d{2})([A-Z\d]+)$/), // match and capture (1) the country code, (2) the check digits, and (3) the rest
  22.             digits;
  23.     // check syntax and length
  24.     if (!code || iban.length !== CODE_LENGTHS[code[1]]) {
  25.         return false;
  26.     }
  27.     // rearrange country code and check digits, and convert chars to ints
  28.     digits = (code[3] + code[1] + code[2]).replace(/[A-Z]/g, function (letter) {
  29.         return letter.charCodeAt(0) - 55;
  30.     });
  31.     // final check
  32.     return mod97(digits);
  33. }
  34.  
  35. function mod97(string) {
  36.     var checksum = string.slice(0, 2), fragment;
  37.     for (var offset = 2; offset < string.length; offset += 7) {
  38.         fragment = String(checksum) + string.substring(offset, offset + 7);
  39.         checksum = parseInt(fragment, 10) % 97;
  40.     }
  41.     return checksum;
  42. }
  43. function validate(){
  44.   var username = document.getElementById('username').value;
  45.   var pass = document.getElementById('pass').value;
  46.   var confpass = document.getElementById('confpass').value;
  47.   var id = document.getElementById('id').value;
  48.   var iban = document.getElementById('iban').value;
  49.   var birth = document.getElementById('birth').value;
  50.   var email = document.getElementById('email').value;
  51.   var num = document.getElementById('num').value;
  52.  
  53.  
  54.   var usernameRGEX = /^[a-zA-Z0-9_]{5,}$/;
  55.   var passRGEX = /^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[@$!%*?&#-_])[A-Za-z\d@$!%*?&#-_]{8,}$/;
  56.   var idRGEX = /^\d{10}$/;
  57.   var birthRGEX = /^(?:(?:31(\/|-|\.)(?:0?[13578]|1[02]))\1|(?:(?:29|30)(\/|-|\.)(?:0?[13-9]|1[0-2])\2))(?:(?:1[6-9]|[2-9]\d)?\d{2})$|^(?:29(\/|-|\.)0?2\3(?:(?:(?:1[6-9]|[2-9]\d)?(?:0[48]|[2468][048]|[13579][26])|(?:(?:16|[2468][048]|[3579][26])00))))$|^(?:0?[1-9]|1\d|2[0-8])(\/|-|\.)(?:(?:0?[1-9])|(?:1[0-2]))\4(?:(?:1[6-9]|[2-9]\d)?\d{2})$/m;
  58.   var emailRGEX = /[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?/;
  59.   var numRGEX = /(([+][(]?[0-9]{1,3}[)]?)|([(]?[0-9]{4}[)]?))\s*[)]?[-\s\.]?[(]?[0-9]{1,3}[)]?([-\s\.]?[0-9]{3})([-\s\.]?[0-9]{2,4})/;
  60.  
  61.   var usernameResult = usernameRGEX.test(username);
  62.   var passResult = passRGEX.test(pass);
  63.   var confpassResult = pass == confpass;
  64.   var idResult = idRGEX.test(id);
  65.   var ibanResult = alertValidIBAN(iban);
  66.   var birthResult = birthRGEX.test(birth);
  67.   var emailResult = emailRGEX.test(email);
  68.   var numResult = numRGEX.test(num);
  69.  
  70.  
  71.  
  72.   alert("username: " + usernameResult +
  73.       "\npassword: "+ passResult +
  74.       "\nconfirm pass: " + confpassResult +
  75.       "\nid: " + idResult +
  76.       "\niban: " + ibanResult +
  77.       "\nbirthdate: " + birthResult +
  78.       "\nemail: " + emailResult +
  79.       "\nnum: " + numResult);
  80. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement