如何在ReactJS中验证电子邮件



我正在尝试删除默认的电子邮件验证,并将我自己的电子邮件验证添加到ReactJS中的注册表单中。最初,我想验证输入的电子邮件地址是否包含@。为此,我整理了下面的代码,但是,它不起作用。

if (!form.email.value.includes('@')) {
setWarning({
show: true,
message: 'Please provide a valid email address.'
})
setTimeout(() => {
setWarning({
show: false,
message: ''
})
}, 3000)
return
}

将来,我还想使用regEx来验证密码,因为我目前只验证字符数,但我还没有学会如何在ReactJS中验证。我希望我的密码至少有一个大写字母,一个小写字母,一种数字,并且没有符号类型。目前,我的代码如下:

if (form.password.length < 6) {
setWarning({
show: true,
message: 'The password must be at least 6 characters long.'
})
setTimeout(() => {
setWarning({
show: false,
message: ''
})
}, 3000)
return
}

首先,我可以建议你用英语在这个Stack Overflow中发帖。如果你愿意,你可以前往";堆栈溢出em Português";(https://pt.stackoverflow.com/)社区为葡萄牙语:(

关于你的第一个问题,你真的不应该用";如果";。如果有人输入";um_email@extra@mail.pt";它将被允许。我强烈建议您使用regex。为了确保您使用的变量正确,我添加了一个控制台日志。你的代码看起来像这样:

console.log(form.email.value);
let emailReg = /^w+([.-]?w+)*@w+([.-]?w+)*(.ww+)+$/;
if (emailReg.test(form.email.value) === false) {
setWarning({
show: true,
message: 'Informe um e-mail válido.'
})
setTimeout(() => {
setWarning({
show: false,
message: ''
})
}, 3000)
return
}

在你的第二个问题上,堆栈溢出不是"溢出"的类型;我需要这个,有人能帮我做吗&";。首先,你需要自己寻找并尝试,尝试不同的正则表达式及其工作方式。但是,是的,关于你是一个新的贡献者,我会尽力帮助你。

// (?=.{6,}) - at least 6 characters or more
// (?=.*d) - at least 1 decimal
// (?=.*[a-z]) - at least 1 lower case
// (?=.*[A-Z]) - at least 1 upper case
// (?!.*W) - no special character
let passwordReg = /^(?=.{6,})(?=.*d)(?=.*[a-z])(?=.*[A-Z])(?!.*W).*$/;
if (passwordReg.test(form.password) === false) {
setWarning({
show: true,
message: 'A senha não é válida.'
})
setTimeout(() => {
setWarning({
show: false,
message: ''
})
}, 3000)
return
}

希望我能帮你

Ps.:如果这回答了您的问题,请将其标记为正确:(

最新更新