views:

121

answers:

1

Hello,

I'm a noob but trying vigorously to simply validate email addresses that only end in ".edu" or ".ac" is there a simple function/script/solution to this seemingly simple problem? able to use php,javascript or jquery.

Any help would be great thanks in advance!

+3  A: 

You want a regular expression.

The following pattern tests for any e-mail address ending in a top-level domain like .com, .org, .net, .biz etc.

[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+(?:[A-Z]{2}|com|org|net|gov|mil|biz|info|mobi|name|aero|jobs|museum)\b

You can use the preg_match function in PHP, pass this as the pattern, and just change the list of top-level domains you want to accept at the end. If the function returns 0, the address didn't validate, if it returns 1, it did match.

Regex source: http://www.regular-expressions.info/email.html

preg_match: http://php.net/manual/en/function.preg-match.php

jQuery also has a validate plugin with built-in patterns for validating e-mail addresses, but you'd need to combine this with the server-side validation in PHP for those people that have Javascript disabled.

Validate plugin: http://docs.jquery.com/Plugins/Validation/validate

Andy Shellam
+1 informative, I encourage the OP to read the "Regex source" link.
msw
that is an awesome answer! thank you andy! i got it working =)
Rees