Search code examples
phpjavascriptemail-validation

validate a .edu or .ac email address


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!


Solution

  • 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