-
-
Save mfr/9268716 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/* Personnummer- och ålderkontroll V1.0 | |
(C)David Lidström 2002 | |
för Pellesoft.nu | |
Skapad: 2002-03-28 | |
Senast ändrad: 2002-03-28*/ | |
function PNR_IsValid(vVad) { | |
if( vVad.search(/\d\d\d\d-\d\d-\d\d-\d\d\d\d/) == 0 ) { | |
var d = new Date(); | |
var vYear = parseInt(vVad.substr(0,4)); | |
var vMonth = parseInt(vVad.substr(5,2)); | |
var vDay = parseInt(vVad.substr(8,2)); | |
if( vYear<1900 || vYear > d.getFullYear() ) return false; // Måste vara minst 1900, och inte högre än nuvarande årtal | |
if( vMonth<0 || vMonth > 12 ) return false; // Månaden måste vara mellan 1 och 12 | |
if( vDay<0 || vDay > 31 ) return false; // Dagen måste vara mellan 1 och 31 | |
return true; | |
} | |
return false; | |
} | |
function PNR_ControlAge(pNr, vMinimi) { | |
var s = pNr.split("-"); | |
var d = new Date(); | |
var cAge; // Personens faktiska ålder ( endast årtal ) | |
cAge = d.getFullYear()-s[0]; | |
if( parseInt(cAge)>parseInt(vMinimi)) { | |
return true; | |
} else if( cAge==vMinimi) { | |
// Årtalet är rätt, men har vi fyllt så mycket ännu? | |
if( (d.getMonth()+1)>= parseInt(s[1]) ) { | |
if( d.getDate()>= parseInt(s[2]) ) { | |
return true; | |
} | |
} | |
} | |
return false; | |
} | |
function PNR_GetLastNumber(vVad) { // En funktion som returnerar kontrollsiffran för ett personnummer | |
var ctrlPNR = new String(""); ctrlPNR = vVad.replace(/-/g, "").substr(2); | |
if( ctrlPNR.length == 10 ) { ctrlPNR = ctrlPNR.substr(0, ctrlPNR.length-1) } | |
a=0; sum=""; | |
for( var n=0; n<ctrlPNR.length; n++) { a = 2; if(n%2) {a=1}; sum+="" + (parseInt(ctrlPNR.substr(n,1))*a) }; numericSum = 0; | |
for( var n=0; n<sum.length; n++) { numericSum+=parseInt(sum.substr(n,1)); } | |
var decInt = new Number( 0 ) | |
decInt = numericSum.toString().substr(numericSum.toString().length-1); | |
if( decInt==10||decInt==0) {return 0;} | |
return 10-decInt; | |
} | |
function PNR_LastNumberIsValid(vPostnummer) { // En funktion som använder sig av ovanstående funktion för att kontrollera sista siffran | |
var vLastNummer = parseInt(vPostnummer.substr(vPostnummer.length-1)); | |
return vLastNummer == PNR_GetLastNumber(vPostnummer); | |
} | |
// helper email address | |
function email_is_valid(value) { | |
// contributed by Scott Gonzalez: http://projects.scottsplayground.com/email_address_validation/ | |
return /^((([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+(\.([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+)*)|((\x22)((((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(([\x01-\x08\x0b\x0c\x0e-\x1f\x7f]|\x21|[\x23-\x5b]|[\x5d-\x7e]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(\\([\x01-\x09\x0b\x0c\x0d-\x7f]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]))))*(((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(\x22)))@((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.?$/i.test(value); | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment