My form does not detect it does not correctly validate the fields

  javascript

I have this form in javascript with regular expressions which I want to validate and once validated correctly it allows me to send the form, the problem is that after writing and filling in all the fields it does not validate it correctly I do not understand very well why This happens since I made sure to write it correctly according to what you want to validate, then I pass the code

window.onload = function() {
  document.getElementById('btnValidar').onclick = function() {
    validador()
  };

}
var arrayFallos = [];
var xmlhttp = new XMLHttpRequest();

function validador() {
  arrayFallos = []

  var campoNombre = document.getElementById('nombre');
  var expNombre = new RegExp('^[AEIOU]{1}[A-Za-z ]{2,14}$'); //nombre que comprueba las vocales , que emppiece por mayuscula y que vaya de 2 a 14 caracteres
  validaCampos(expNombre, campoNombre);


  var campoEdad = document.getElementById('edad');
  var expEdad = new RegExp('^([1][8-9]|[2-5][0-9]|[6][0-5])$'); //va desde los 18 hasta los 65
  validaCampos(expEdad, campoEdad);


  var campoDNI = document.getElementById('DNI');
  var expDNI = new RegExp('/^[a-z]{3}[0-9]{6}[a-z]?$/i'); //valida un DNI español
  validaCampos(expDNI, campoDNI);


  var campotlf = document.getElementById('tlf');
  var exptlf = new RegExp('/^[679]{1}[0-9]{8}$/'); //valida numeros de telefono movil
  validaCampos(exptlf, campotlf);


  var campoemail = document.getElementById('email');
  var expemail = new RegExp('/^(([^<>()[].,;:[email protected]"]+(.[^<>()[].,;:[email protected]"]+)*)|(".+"))@(([[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}])|(([a-zA-Z-0-9]+.)+[a-zA-Z]{2,}))$/');
  validaCampos(expemail, campoemail);

  console.log("Array fallos en el siguiente log");
  console.log(arrayFallos);

  if (arrayFallos.length == 0) {
    alert("Formulario completo puede enviar");
    document.getElementById("Enviar").disabled = false;
    document.getElementById("Enviar").type = 'submit';
  } else {
    var fallos = "";
    for (var i = 0; i < arrayFallos.length; i++) {
      fallos += arrayFallos[i].name + "n";
    }
    arrayFallos[0].focus();
    alert("Los campos: n" + fallos + "nNo cumplen los requisitos");
  }
}

xmlhttp.onreadystatechange = function() {
  if (this.readyState == 4 && this.status == 200) {
    var myObj = eval("(" + this.responseText + ")");
    console.log(myObj);

    var arraymembers = myObj.Estados;

    var radios = document.querySelectorAll('input[name=Sexo]');
    for (i = 0; i < radios.length; i++) {
      radios[i].addEventListener('click', function() {
        document.getElementById("estado_civil").innerHTML = '';
        var sexo = this.value;
        var estados = data.Estados[sexo].estado_civil;
        for (j = 0; j < estados.length; j++) {
          var option = document.createElement("option");
          option.innerHTML = estados[j].estado;

          document.getElementById("estado_civil").appendChild(option);
        }
      });
    }
  }
}

xmlhttp.open("GET", "file:///F:/javascript%20recuperacion/ejercicio%20formulario/generated.json", true);

xmlhttp.send();

function validateForm() {
  var problem_desc = document.getElementById("textarea");

  if ($.trim(problem_desc.value) == '') {
    alert("Por favor escribe ");
    return false;
  } else {
    return true;
  }
}

function validaCampos(expresion, campo) {
  var idcampo = campo.id

  if (expresion.test(campo.value)) {
    console.log("Si " + campo, idcampo);
    return true;
  } else {
    console.log("NO " + campo, idcampo, campo.value);

    arrayFallos.push(campo);

    switch (idcampo) {

      case 'nombre':
        window.alert("Error en el campo " + idcampo + " : nn. valor no valido");
        break;
      case 'edad':
        window.alert("Error en el campo " + idcampo + " : nn valor no valido");
        break;
      case 'DNI':
        window.alert("Error en el campo " + idcampo + " : nn valor no valido");
        break;
      case 'tlf':
        window.alert("Error en el campo " + idcampo + "  nn valor no valido");
        break;
      case 'email':
        window.alert("Error en el campo " + idcampo + "  nn valor no valido");
        break;
    }
    return false;
  }
}

<form id="form" action="">
  Nombre: <input type="text" id="nombre" name="nombre"></br>
  </br>
  Edad: <input type="text" id="edad" name="edad"></br>
  </br>
  DNI: <input type="text" id="DNI" name="DNI"></br>
  </br>
  Telefono: <input type="tel" id="tlf" name="tlf"></br>
  </br>
  Email :<input type="email" id="emial" name="email"></br>
  </br>

  <input type="Radio" name="Sexo" id="Hombre" value="Hombre">Hombre
  <input type="Radio" name="Sexo" id="Mujer" value="Mujer">Mujer<br></br>

  <li>
    <label for="estado_civil">Estado Civil</label>
    <select id="estado_civil" name="estado_civil">
    </select>
  </li>

  <label for="textarea">Observaciones:</label><br>
  <textarea id="textarea" name="textarea" rows="4" cols="50">
                
                </textarea><br><br>

  <li>
    <label>
                    <input type='checkbox' value='SI' id='acepto'/>
                    He leído y acepto las condiciones;
                </label>
  </li><br></br>

Source: Ask Javascript Questions

LEAVE A COMMENT