if (!this.state.username.match(/^[a-zA-Z0-9._-]+@(?!gmail.com)(?!yahoo.com)(?!outlook.com)(?!aol.com)(?!live.com)(?!hotmail.com)[a-zA-Z0-9.-]+\.[a-zA-Z]{2,4}$/)) {
alert("Only Business Emails Are Allowed");
}
if (!this.state.phonenumber.match(/^[0-9]{10}$/)) {
alert("10 digit mobile number or 10 digit Area code followed by landline number only allowed");
} else {
let data = Object.assign({
profilePhoto: (this.state.files && this.state.files.length == "0") ? "" : this.state.files[0].base64,
}, this.state);
UserAction._createUser(data, (data) => {
console.log(data);
(data.response == "SUCCESS") ? this.setState({ gotSuccess:true, openrejectDialog: true}) : alert(data.message)
});
}
我根据用户名和电话号码的匹配来检查条件。 如果用户名或电话号码不匹配,我会收到警报。然后点击“确定”从警报它将转到其他地方 我想在成功完成“if”条件后调用else语句
答案 0 :(得分:0)
基本上你做得不对,你应该在每次验证时使用if / else,最后一种情况就是你的成功通话。
根据您的代码,如果您的用户名错误且编号正确,您可以调用createUser
功能,这不是所需的流程。
下面有一个正常工作的代码:
如果用户名错误,则显示错误。
如果用户名正确,请检查号码是否正确,如果不正确,则显示错误。
如果所有检查均已通过,则为默认情况。
if (!this.state.username.match(/^[a-zA-Z0-9._-]+@(?!gmail.com)(?!yahoo.com)(?!outlook.com)(?!aol.com)(?!live.com)(?!hotmail.com)[a-zA-Z0-9.-]+\.[a-zA-Z]{2,4}$/)) {
alert("Only Business Emails Are Allowed");
} else if (!this.state.phonenumber.match(/^[0-9]{10}$/)) {
alert("10 digit mobile number or 10 digit Area code followed by landline number only allowed");
} else {
let data = Object.assign({
profilePhoto: this.state.files && this.state.files.length == "0" ? "" : this.state.files[0].base64,
}, this.state);
UserAction._createUser(data, (data) => {
console.log(data);
data.response == "SUCCESS" ? this.setState({
gotSuccess: true,
openrejectDialog: true
}) : alert(data.message)
});
}

答案 1 :(得分:0)
您使else
代码仅对第二个if
语句有条件。
很快,else
代码不依赖于第一个if
。
您可以尝试此操作,仅当else
的所有内容都是 false 时才能运行if
:
if( <checks if the email is valid>){
alert("Only Business Emails Are Allowed");
} else if ( <checks the phone number>){
alert("10 digit mobile number or 10 digit Area code followed by landline number only allowed");
} else {
/* the else code here */
}