Skip to content

Instantly share code, notes, and snippets.

@kdssoftware
Last active January 11, 2021 14:53
Show Gist options
  • Save kdssoftware/da2c596ca824e605dba4349425858d31 to your computer and use it in GitHub Desktop.
Save kdssoftware/da2c596ca824e605dba4349425858d31 to your computer and use it in GitHub Desktop.
Check en valideer een Belgisch rijksregister met javascript
<!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