Last active
January 11, 2021 14:53
-
-
Save kdssoftware/da2c596ca824e605dba4349425858d31 to your computer and use it in GitHub Desktop.
Check en valideer een Belgisch rijksregister met javascript
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
<!DOCTYPE html> | |
<html lang="en"> | |
<head> | |
<meta charset="UTF-8"> | |
<meta name="viewport" content="width=device-width, initial-scale=1.0"> | |
<title>test</title> | |
</head> | |
<body> | |
<form action="/" method='post' > | |
<ul> | |
<li> | |
<label for="wc-memberships-member-profile-field-rijksregisternummer">rijksregisternummer</label> | |
<input id='wc-memberships-member-profile-field-rijksregisternummer' type="text"> | |
</li> | |
</ul> | |
<h5>Test cases:</h5> | |
<p>00.11.01-023.53 - valid</p> | |
<p>07.11.01-023.06 - valid</p> | |
<p>99.11.01-023.66 - valid</p> | |
<p>30.11.01-023.72 - valid</p> | |
<p>53.01.08-004.03 - valid</p> | |
<p>13.01.08-004.65 - valid</p> | |
<p>12.11.01-104.62 - invalid</p> | |
<p>01.12.31-123.12 - invalid</p> | |
<input type="submit" value="submit" role='submit'> | |
</form> | |
<script src="https://code.jquery.com/jquery-3.5.1.js" | |
integrity="sha256-QWo7LDvxbWT2tbbQ97B53yJnYU3WhH/C8ycbRAkjPDc=" crossorigin="anonymous"></script> | |
<!--BEGIN INLINE SCRIPT--> | |
<script type="text/javascript"> | |
/** | |
* @author Karel De Smet (snakehead007) | |
* @email [email protected] | |
* @website http://karel.be | |
* @creationDate 09/12/2020 | |
*/ | |
var id_van_input_veld_rijksregisternummer = "wc-memberships-member-profile-field-rijksregisternummer"; | |
var id_van_input_veld_geboortedatum = "wc-memberships-member-profile-field-geboortedatum"; | |
jQuery(document).ready(function () { | |
jQuery("#" + id_van_input_veld_geboortedatum).attr("type", 'date'); | |
jQuery("#"+id_van_input_veld_geboortedatum).attr('pattern',"\\d{1,2}/\\d{1,2}/\\d{4}"); | |
jQuery("#"+id_van_input_veld_geboortedatum).attr('placeholder',"dd/mm/yyyy"); | |
jQuery("#" + id_van_input_veld_rijksregisternummer).focusout(function () { | |
RNN_Check(); | |
return; | |
}); | |
function RNN_Check(){ | |
var r = jQuery("#" + id_van_input_veld_rijksregisternummer).val(); | |
if (r.length > 0){ | |
r = r.replace(/\D/g, ''); | |
jQuery("#" + id_van_input_veld_rijksregisternummer).val(r); | |
console.log('RNN Controle wordt uitgevoerd'); | |
if (r.length !== 11) { | |
window.alert("Foutief Belgisch rijksregisternummer (geen 11 cijfers)"); | |
jQuery("#" + id_van_input_veld_rijksregisternummer).focus(); | |
} else { | |
var c1 = r.substr(9); | |
var isBoven2000 = function(r){ | |
var begin = Number(r.substr(0,2)) | |
if(begin >= 0 && begin <=21) /*tussen jaar 2000 en 2021 */{ | |
return true; | |
}else{ | |
return false; | |
} | |
} | |
var moduloFunctie = function(nr) { return String(97 - (nr % 97)) }; | |
var c2 = moduloFunctie(r.substr(0,9)); | |
if(isBoven2000(r)){ | |
c2 = moduloFunctie("2"+r.substr(0, 9)); | |
} | |
if (c2 < 10) { | |
c2 = '0' + c2 | |
} | |
if (c1 != c2) { | |
window.alert("Foutief Belgisch rijksregisternummer: Controle mislukt"); | |
jQuery("#" + id_van_input_veld_rijksregisternummer).focus(); | |
} | |
} | |
} | |
}; | |
}) | |
</script> | |
<!--EINDE INLINE SCRIPT--> |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment