React-更全面的电子邮件验证

时间:2019-06-26 18:55:40

标签: javascript reactjs email-validation

我正在寻求一种比我目前拥有的更为全面的电子邮件验证。如果您看一下我的代码,我只检查@符号并以.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,
    },
  });
}

};

1 个答案:

答案 0 :(得分:1)

验证电子邮件的最佳方法是使用正则表达式:

const emailRegEx = /^(([^<>()\[\]\.,;:\s@\"]+(\.[^<>()\[\]\.,;:\s@\"]+)*)|(\".+\"))@(([^<>()[\]\.,;:\s@\"]+\.)+[^<>()[\]\.,;:\s@\"]{2,})$/i;

以上内容将匹配99.99%的有效电子邮件