Skip to content

Instantly share code, notes, and snippets.

@aslamanver
Last active September 28, 2021 07:17
Show Gist options
  • Save aslamanver/9041b696d832090075fb2d95fa6f1743 to your computer and use it in GitHub Desktop.
Save aslamanver/9041b696d832090075fb2d95fa6f1743 to your computer and use it in GitHub Desktop.
Email Validation Pattern - Regex, JavaScript, Java, Kotlin and Dart

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

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment