在反应中调用JS功能



我试图通过Regex验证电子邮件时,在道路上遇到了颠簸。尝试使用内置的JavaScript .test()方法进行正则测试时,我会遇到不确定的功能错误。引用这些类型的功能时,是否有某种特殊关键字可以使用?

谢谢!感谢您的意见。

这是导致问题的代码的两个部分。

class LoginForm extends Component {
state = { email: '', password: '', warning: '', loading: false, color:     '#FFFFFF' };
  onButtonPress() {
      const { email, password } = this.state;
  this.setState({ loading: true });
  this.setState({ warning: '' });
  if (this.verifyEmail(email)) {
    firebase.auth().signInWithEmailAndPassword(email, password)
    .then(this.onLoginSuccess.bind(this))
    .catch(() => {
      firebase.auth().createUserWithEmailAndPassword(email, password)
        .then(this.onLoginSuccess.bind(this))
        .catch(this.onLoginFail.bind(this));
    });
  }
  else {
    this.onLoginFail.bind(this);
  }
}
  verifyEmail = (email) => {
    const regex = '^[a-zA-Z0-9_.+-]+@(?:(?:[a-zA-Z0-9-]+.)?[a-zA-Z]+.)?    (gmail).com$';
    return regex.test(email);
  }

您的正则是一个字符串,而不是真正的正则正则是这样,您应该创建这样的正则是这样:

verifyEmail = (email) => {
    const regex = /^[a-zA-Z0-9_.+-]+@(?:(?:[a-zA-Z0-9-]+.)?[a-zA-Z]+.)?    (gmail).com$/;
    return regex.test(email);
}

正则是重复使用的。所以我建议您这样做:

const regex = /^[a-zA-Z0-9_.+-]+@(?:(?:[a-zA-Z0-9-]+.)?[a-zA-Z]+.)?    (gmail).com$/;
var verifyEmail = (email) => {
    return regex.test(email);
}

相关内容

  • 没有找到相关文章

最新更新