当我尝试通过正则表达式验证电子邮件时,我遇到了一个路障。尝试使用内置JavaScript .test()方法进行正则表达式测试时,出现未定义的函数错误。引用这些类型的函数时是否使用某种特殊关键字?在反应本地调用js函数
谢谢!我感谢你的意见。
这些是导致问题的两段代码。
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_.+-][email protected](?:(?:[a-zA-Z0-9-]+\.)?[a-zA-Z]+\.)? (gmail)\.com$';
return regex.test(email);
}
你似乎是试图调用['RegExp.prototype.test'](https://developer.mozilla.org/en-US/docs/Web/JavaScript/ Reference/Global_Objects/RegExp/test)。尝试将您的字符串转换为实际的RegExp – Hamms
Yeap,这很有道理。我在一段时间里并没有和js混淆。谢谢! – Gabe