webix.ui.datafilter.rowCount = webix.extend({ refresh:function(master, node, value){ node.firstChild.innerHTML = master.count(); } }, webix.ui.datafilter.summColumn) function validate_rfc(value){ rfc = value.trim().toUpperCase(); if ( rfc == ""){ webix.message({ type:"error", text:"El RFC no puede estar vacío" }); return false } var tipo_persona = $$('tipo_persona').getValue() var length = 13 var start = 4 if(tipo_persona==2){ length = 12 start = 2 } if (rfc.length != length){ webix.message({ type:"error", text:"Longitud incorrecta del RFC" }); return false } if (tipo_persona < 3 && (rfc == RFC_PUBLICO || rfc == RFC_EXTRANJERO)){ webix.message({ type:"error", text:"RFC incorrecto" }); return false } 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 };