forked from elmau/empresa-libre
65 lines
1.9 KiB
JavaScript
65 lines
1.9 KiB
JavaScript
|
|
||
|
|
||
|
function validate_rfc(value){
|
||
|
rfc = value.trim().toUpperCase();
|
||
|
if ( rfc == ""){
|
||
|
webix.message({ type:"error", text:"El RFC no puede estar vacío" });
|
||
|
return false
|
||
|
}
|
||
|
|
||
|
if (rfc.length < 12 || rfc.length > 13){
|
||
|
webix.message({ type:"error", text:"Longitud incorrecta del RFC" });
|
||
|
return false
|
||
|
}
|
||
|
|
||
|
var start = 4;
|
||
|
//~ var tipo = $$("opt_tipo").getValue();
|
||
|
//~ if (tipo == 1 && value.length != 13){
|
||
|
//~ webix.message({ type:"error", text:"RFC debe ser de 13 caracteres" });
|
||
|
//~ return false
|
||
|
//~ }
|
||
|
//~ if (tipo == 2 && value.length != 12){
|
||
|
//~ webix.message({ type:"error", text:"RFC debe ser de 12 caracteres" });
|
||
|
//~ return false
|
||
|
//~ }
|
||
|
//~ var tipo = 1;
|
||
|
//~ if (tipo == 2){
|
||
|
//~ start = 3;
|
||
|
//~ }
|
||
|
//~ var rfc = value.toUpperCase();
|
||
|
if (rfc.length == 12){
|
||
|
start = 3;
|
||
|
}
|
||
|
var part = rfc.slice(0, start);
|
||
|
var re = new RegExp('[a-z&Ñ]{' + start + '}', 'i');
|
||
|
if (!part.match(re)){
|
||
|
webix.message({ type:"error", text: "El RFC tiene caractéres inválidos al inicio" });
|
||
|
return false
|
||
|
}
|
||
|
part = rfc.slice(-3);
|
||
|
re = new RegExp('[a-z0-9]{3}', 'i');
|
||
|
if (!part.match(re)){
|
||
|
webix.message({ type:"error", text: "El RFC tiene caractéres inválidos al final" });
|
||
|
return false
|
||
|
}
|
||
|
|
||
|
part = rfc.slice(-9, -3);
|
||
|
re = new RegExp('[0-9]{6}', 'i');
|
||
|
if (!part.match(re)){
|
||
|
webix.message({ type:"error", text: "Fecha inválida" });
|
||
|
return false
|
||
|
}
|
||
|
var month = parseInt(part.slice(-4, -2))
|
||
|
if (month == 0 || month > 12 ){
|
||
|
webix.message({ type:"error", text: "Fecha inválida" });
|
||
|
return false
|
||
|
}
|
||
|
var day = parseInt(part.slice(-2))
|
||
|
if (day == 0 || day > 31 ){
|
||
|
webix.message({ type:"error", text: "Fecha inválida" });
|
||
|
return false
|
||
|
}
|
||
|
|
||
|
return true
|
||
|
};
|