Вы можете легко проверить свой адрес электронной почты, протестировав event.target.value
с выражением Regex
. Вот пример реализации вашего кода.
Вот живая песочница. Протестируйте, щелкнув вкладку консоли и введя действительный адрес электронной почты в поле ввода.
handleEmailChange = (event) => {
let changedEmailValue = event.target.value;
const isValidEmail = this.validateEmail(changedEmailValue);
if (isValidEmail) {
this.setState({
item: event.target.value,
});
} else {
console.log("It's not a valid email");
}
};
validateEmail = (email) => {
if (/^[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,4}$/i.test(email)) {
return true;
} else {
return false;
}
};
<TextField
error={errorInputs.email}
margin="normal"
fullWidth
id={"email"}
value={item.email}
onChange={(e) => {
this.handleEmailChange(e);
}}
onBlur={() => this.handleBlur("email")}
/>;
Обновление: реализовано с помощью Switch
handleEmailChange = (event) => {
let changedEmailValue = event.target.value;
const isValidEmail = this.validateEmail(changedEmailValue);
switch (event.target.id) {
case "email":
isValidEmail
? this.setState({ item: event.target.value })
: this.setState({ item: "" });
break;
default:
break;
}
};
validateEmail = (email) => {
if (/^[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,4}$/i.test(email)) {
return true;
} else {
return false;
}
};
<TextField
error={errorInputs.email}
margin="normal"
fullWidth
id={"email"}
value={item.email}
onChange={(e) => {
this.handleEmailChange(e);
}}
onBlur={() => this.handleBlur("email")}
/>;