Estoy tratando de verificar el correo electrónico de entrada que el usuario proporciona a mi bot de discordia.
Lo que quiero hacer es asegurarme de que el formato del correo electrónico sea correcto.
-> $correo electrónico ok@gmail.com
no $ correo electrónico gdfughdfzug
client.on('messageCreate', message => { if (!message.content.startsWith(prefix) || message.author.bot) return; const args = message.content.slice(prefix.length).trim().split(/ +/); const command = args.shift(); var mailformat = /^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/; //recuperation email if (command === 'email') { if (!args.length) { return message.channel.send(`Merci de fournire votre email.\nExemple: monEmail@gmail.com !`); } if(String(args).value.match(mailformat)) { alert("Valid email address!"); return message.channel.send(`Merci de nous avoir fournie votre email: ${args}`); } } });
En mi variable args, obtengo el parámetro después de $email.
Pero cuando ejecuto el robot y trato de ver si funciona, aparece este error
TypeError : Impossible to read the properties of undefined (read 'match')
Bueno, no publicaste cómo obtienes los argumentos del mensaje. Si está hecho de la misma manera que la mayoría de los bots, entonces debería ser una matriz de cadenas. Supongo que debe verificar solo el primer argumento de cadena que, en este caso, es el correo electrónico.
Luego puede acceder a él por el índice 0. Y verifique si el correo es válido así:
if (args[0].match(mailformat)) ...