JSFiddle - React, Tailwind, and code Playground
by cjblomqvist
HTML
<body></body>
JavaScript
function personnummer(nr){
nr = nr.replace(/[-\s]/gi, "");
if( !nr.match( /^(\d{10})$/ ) ) {
return false;
}
nr = RegExp.$1;
sChecksum = String( nr.substr( 0, 1 ) * 2 ) + String( nr.substr( 2, 1 ) * 2 ) + String( nr.substr( 4, 1 ) * 2 ) + String( nr.substr( 6, 1 ) * 2 ) + String( nr.substr( 8, 1 ) * 2 );
$('body').append('<p style="color: red;">' + sChecksum + '</p>' );
checksum = 0;
for( var n = 0; n < sChecksum.length; n++ ) {
checksum += parseInt( sChecksum.substr( n, 1 ) );
}
checksum += parseInt( nr.substr( 1, 1 ) ) + parseInt( nr.substr( 3, 1 ) ) + parseInt( nr.substr( 5, 1 ) ) + parseInt( nr.substr( 7, 1 ) );
$('body').append('<p style="color: red;">' + checksum + '</p>' );
return ( ( ( checksum % 10 == 0 ? 0 : 10 ) - checksum % 10 ) == nr.substr( 9, 1 ) );
}
$('body').append('<p>8702253330: ' + personnummer('8702253330') + '</p>' );
$('body').append('<p>8707075613: ' + personnummer('8707075613') + '</p>' );