empresa-libre/source/static/js/controller/util.js

65 lines
1.9 KiB
JavaScript
Raw Normal View History

2017-06-27 15:43:02 -05:00
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
};