【发布时间】:2025-12-08 03:40:01
【问题描述】:
我希望进行比我目前拥有的更全面的电子邮件验证。如果您查看我的代码,我只会检查 @ 符号并以 .com 结尾。我可以在当前的代码配置中包含更全面的验证检查吗?
JS:
this.state = {
inputs: {
name: '',
email: '',
message: '',
},
errors: {
name: false,
email: false,
message: false,
},
};
handleOnChange = e => {
const { name, value } = e.target;
if (name === 'email') {
this.setState({
inputs: {
...this.state.inputs,
[name]: value,
},
errors: {
...this.state.errors,
email:
(value.includes('@') && value.slice(-4).includes('.com'))
? false
: true,
},
});
} else {
this.setState({
inputs: {
...this.state.inputs,
[name]: value,
},
errors: {
...this.state.errors,
[name]: false,
},
});
}
};
【问题讨论】:
-
您应该考虑使用正则表达式以简化您的验证。检查上面评论中的链接
-
无论您得到(或没有)任何答案,您都应该阅读以下内容:regular-expressions.info/email.html
-
另外,Eric,我的
.net、.edu和.us电子邮件地址呢?它们是有效的,但不会通过.com的测试 -
...终于...你为什么不直接使用
<input type="email" ...>? -
谢谢大家 - 正则表达式解决方案将完美运行!
标签: javascript reactjs email-validation