JavaScript, Dart Pattern
^(([^<>()[\]\\.,;:\s@\"]+(\.[^<>()[\]\\.,;:\s@\"]+)*)|(\".+\"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$
Java, Kotlin Pattern
^(([^<>()[\]\\.,;:\s@\"]]+(\.[^<>()[\]\\.,;:\s@\"]]+)*)|(\".+\"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$
Kotlin Use Case
import java.util.*
import java.util.regex.Matcher
import java.util.regex.Pattern
fun main() {
val email = "[email protected]"
print("isValidEmail: ${email.isValidEmail()}")
}
inline fun String.isValidEmail(): Boolean {
val emailPattern = ("^(([^<>()[\\]\\\\.,;:\\s@\\\"]]+(\\.[^<>()[\\]\\\\.,;:\\s@\\\"]]+)*)|(\\\".+\\\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))\$")
val pattern: Pattern = Pattern.compile(emailPattern)
val matcher: Matcher = pattern.matcher(this)
return matcher.matches()
}
Dart Use Case
void main() {
print(validateEmail("[email protected]"));
}
bool validateEmail(String value) {
Pattern pattern = r'^(([^<>()[\]\\.,;:\s@\"]+(\.[^<>()[\]\\.,;:\s@\"]+)*)|(\".+\"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$';
RegExp regex = new RegExp(pattern);
return (!regex.hasMatch(value)) ? false : true;
}
Test it:
https://regexr.com/66ej2
https://regex101.com/r/fmjl1v/1