3 ms·
I really don't care. We also, in automated test environments, send email to user@host so it doesn't escape the internal network. I don't have to use a regex if
by meaty 14y ago
I really don't care. We also, in automated test environments, send email to user@host so it doesn't escape the internal network.
I don't have to use a regex if I use the methodology I specified.
Simple Java implementation off the top of my head. Very fast, no imports or expression compilation required:
bool isValidEmailAddress(String emailAddress) {
int at = emailAddress.indexOf('@');
if (at < 1 || at == emailAddress.length() - 1)
return false;
return !Character.isWhiteSpace(emailAddress.charAt(at - 1)) &&
!Character.isWhiteSpace(emailAddress.charAt(at + 1));
}
Improvements welcome. Should be portable to any other language trivially.
- readme 14y agoboolean isValid = (email != null ? email.contains("@") : false) the goal of client-side validation is to ensure that you can actually make that network call to do a real validation. the rfc is so complicated it's not even worth getting into this business, as evidenced by op's regex. would love to see some unit tests for that thing.
- meaty 14y agoC version because I was bored: int is_valid_email(char *email) { char *at = strstr(email, "@"); if (at <= email || at == strlen(email) + at - 2) return 0; return !isspace(*(at - 1)) && !isspace(*(at + 1)); } Test cases: assert(0 == is_valid_email("")); assert(0 == is_valid_email("@b")); assert(0 == is_valid_email("b@")); assert(0 == is_valid_email("d@ ")); assert(0 == is_valid_email(" @d")); assert(0 == is_valid_email(" ")); assert(1 == is_valid_email("a@b")); assert(1 == is_valid_email("John Smith <x.y@z.com>"));
- deleted 14y ago[deleted]