function getDomainName(urlOrEmail)
{
var matches = urlOrEmail.match(/^([\w]+:\/{0,2})?([\w]+\.|.*@)?([\w]+\.[\w]{2,4})(\/?)(.*)?/);
return matches && matches[3] ;
}
Sample usage:
//any format such as images.photosnippet.com, www.photosnippet.com, etc
var site = "http://www.photosnippet.com";
var email = "me@photosnippet.com";
document.write(getDomainName(site)); => prints "photosnippet.com"
document.write(getDomainName(email)); => prints "photosnippet.com"
NOTE: Thist post has been updated. Thanks to "gwafo ko" comments, I was able to know more regex syntax such as "\w" and "String.match()". (obviously this was my first regex code. hehe ;) ).
I used this site as reference: http://www.regular-expressions.info/reference.html
What the script above does is that it will only retrieve the domain name, excluding subdomains. Here are the different scenarios that this script was intended for:
1. me@markglibres.com
2. my.projects@markglibres.com
3. mailto::me@markglibres.com
4. markglibres.com
5. www.markglibres.com
6. projects.markglibres.com
7. http://markglibres.com
8. http://projects.markglibres.com
This also has a strict rule of only having valid domain extensions such as ".com" or ".us" or ".info" (characters not greater than 4 characters)
This will return "markglibres.com"