JSFiddle - React, Tailwind, and code Playground

by Juan Muñoz

HTML

<input type="text" value='10042019' class="fechaval solonumeroguion">

JavaScript

$(document).ready(function (){
/* $(document).on('blur', 'fechaval',function (){
    var valor = $(this).val();
    var len_valor = $(this).val().length;
    if (len_valor  == 10){
        var validafecha = /^(((0[1-9]|[12]\d|3[01])\-(0[13578]|1[02])\-((19|[2-9]\d)\d{2}))|((0[1-9]|[12]\d|30)\-(0[13456789]|1[012])\-((19|[2-9]\d)\d{2}))|((0[1-9]|1\d|2[0-8])\-02\-((19|[2-9]\d)\d{2}))|(29\-02\-((1[6-9]|[2-9]\d)(0[48]|[2468][048]|[13579][26])|((16|[2468][048]|[3579][26])00))))$/g;
        if (validafecha.test(valor.toString())){
            var regfecha = /(/d{2})-(/d{2})-(/d{4})/g
            valor = valor.toString().replace(regfecha, "$1\.");
            $(this).val(valor);
        }else{
            $(this).val('');   
        }
    }else{
        $(this).val('');
    }
});

 */


$(document).on('blur', '.fechaval',function (){
    var valor = $(this).val();
    var len_valor = $(this).val().length;
    if ( !isNaN(valor) ){
    
    
      if (len_valor  == 8 ){
          
        var regfecha = /(\d{2})(\d{2})(\d{4})/g
      	valor = valor.toString().replace(regfecha, "$1-$2-$3");
        
         var validafecha = /^(((0[1-9]|[12]\d|3[01])\-(0[13578]|1[02])\-((19|[2-9]\d)\d{2}))|((0[1-9]|[12]\d|30)\-(0[13456789]|1[012])\-((19|[2-9]\d)\d{2}))|((0[1-9]|1\d|2[0-8])\-02\-((19|[2-9]\d)\d{2}))|(29\-02\-((1[6-9]|[2-9]\d)(0[48]|[2468][048]|[13579][26])|((16|[2468][048]|[3579][26])00))))$/g;
        if (validafecha.test(valor.toString())){
        	console.log("fecha correcta")
      		$(this).val(valor);
        }else{
        console.log("fecha invalida")
        	$(this).val('');
        }
          
      }else{
          $(this).val('');
      }
    }else{
      if (len_valor  == 10){
				var validafecha =...