0

es mi primera ves haciendo validaciones en JAVASCRIPT, y me gustaría poder realizar una validación para agregar un correo electrónico valido, y que no solo pongan por ejemplo "juan" sino que verifique el "@correo.com" si hubiera una opción de poder poner gmail, hotmail, y todos los correos validos estaría súper padre, pero por el momento me gustaría si me pudieran apoyar.

De igual modo para poder validar que se coloque de forma el CURP solo si son ciudadanos mexicanos, de lo contrario que deje el campo vacio.

Anexo mi código en javascript..


$(document).ready(() => {
    const serializeForm = () => {
        const dataArray = $('#form-captura-de-datos').serializeArray();
        const output = {};
        dataArray.forEach((field) => {
            output[field.name] = field.value;
        });
        return output;
    };

    $('#form-captura-de-datos').on('submit', function(e) {
        // Paramos el comportamiento del formulario
        e.preventDefault();

        // Validaciones
        const { nombre, apellido, email, curp } = serializeForm();
        var expRegEmail = /^(([^<>()[\]\\.,;:\s@"\']+(\.[^<>()[\]\\.,;:\s@"\']+)*)|("[^"\']+"))@((\[\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\])|(([a-zA-Z\d\-]+\.)+[a-zA-Z]{2,}))$/;
        var expRegCurp = /^[A-Z][AEIOUX][A-Z]{2}[0-9]{2}[0-1][0-9][0-3][0-9][MH][A-Z][BCDFGHJKLMNÑPQRSTVWXYZ]{4}[0-9A-Z][0-9]\z$/;

        let errores = '';

        let nombre = $('#nombre').val().trim();
        if (nombre == '' || nombre.length >= 30) {
            //if (nombre === '' || nombre.length >= 30) {
            errores += '<p>El nombre no debe quedar vacío ni tener más de 30 caracteres.</p>';
            $('#nombre').css('border-bottom-color', '#F14B4B');
        } else {
            $('#nombre').css('border-bottom-color', '#d1d1d1');
        }

        // Validado Apellido ==============================
        //if ($('#apellido').val() == '' || $('#apellido').val() >= 30) {
        let apellido = $('#apellido').val().trim();
        if (apellido == '' || apellido.length >= 30) {
            errores += '<p>El apellido no debe quedar vacío ni tener más de 30 caracteres.</p>'
            $('#apellido').css('border-bottom-color', '#F14B4B');
        } else {
            $('#apellido').css('border-bottom-color', '#d1d1d1');
        }

        // Validado Correo ==============================

        var esValido = expRegEmail.test($('#email'));
        let email = $('#email').val().trim();
        if (email == '' || email.length >= 30 || esValido) {
            errores += '<p>Ingresa una cuenta de correo electrónico válida.</p>';
            $('#email').css('border-bottom-color', '#F14B4B');
        } else {
            $('#email').css('border-bottom-color', '#d1d1d1');
        }

        //Validando curp=====================================
        var esValido = expRegCurp.test($('#email'));
        let curp = $('#curp').val().trim();
        if (curp.length >= 18 || esValido) {
            errores += '<p>Ingresa un CURP válido o deja en blanco si no eres mexicano.</p>';
            $('#email').css('border-bottom-color', '#F14B4B');
        } else {
            $('#email').css('border-bottom-color', '#d1d1d1');
        }

        // ENVIANDO MENSAJE ============================
        if (errores) {
            const mensajeModal =
                '<div class="modal_wrap">' +
                '<div class="mensaje_modal">' +
                '<h3>Errores encontrados</h3>' +
                errores +
                '<span id="btnClose">Cerrar</span>' +
                '</div>' +
                '</div>';
            $('body').append(mensajeModal);
            // CERRANDO MODAL ==============================
            $('#btnClose').click(function() {
                $('.modal_wrap').remove();
            });
        } else {
            // Continuamos con la petición
            e.currentTarget.submit();
        }


    });
});
  • Tu publicación son 2 preguntas diatintas y al menos por la de la CURP terminaría cerrada como duplicada – BetaM Aug 01 '20 at 01:00
  • 1
    ¿Responde esto a tu pregunta? [Cómo validar una CURP de México](https://es.stackoverflow.com/questions/31039/c%c3%b3mo-validar-una-curp-de-m%c3%a9xico) – BetaM Aug 01 '20 at 01:01
  • Relacionado: [validar un email en nodejs](https://es.stackoverflow.com/questions/352026/validar-un-email-en-nodejs/352153#352153) – Mauricio Contreras Aug 01 '20 at 09:13
  • Esta pregunta es lo mismo que [Verificación del formulario en Javascript](https://es.stackoverflow.com/questions/377398/verificaci%c3%b3n-del-formulario-en-javascript) – Triby Aug 01 '20 at 19:34
  • La validación de correo electrónico en el navegador es muy sencilla, basta con usar el tipo de campo adecuado y marcarlo como requerido: `` – Triby Aug 01 '20 at 19:36

0 Answers0