preg: how to write a preg pattern to get domain name from an email?

From an email address like [email protected] I want to fetch domain name gmail.com. i want to use that pattern on textbox value in Javascript.

Pease suggest me an optimized and faster preg pattern for above requirement...

Answers:

Answer

You can replace everything up to and including the @ symbol to get the domain. In Javascript:

var email = '[email protected]';
var domain = email.replace(/.*@/, "");
alert(domain);
Answer

Why not just do this.

var email = "[email protected]", i = email.indexOf("@");
if (i != -1) {
   email = email.substring(i);
}

Regex isn't really required, you could also go email = email.split("@")[1];

Answer

I have just experience a need to implement this and came up with the solution that combines most of already mentioned techniques:

var email = "[email protected]@gmail.com";
var email_string_array = email.split("@");
var domain_string_location = email_string_array.length -1;
var final_domain = email_string_array[domain_string_location];

So if email has multiple @ characters then you just need to split email string by "@" and calculate how many elements are there in new created array then subtract 1 from it and you can take right element from array with that number.

Here is the jsfiddle: http://jsfiddle.net/47yqn/

It has show 100% success for me!

Answer

Using a simple string split won't work on addresses like '[email protected]'@example.com which is a valid address (technically). I believe splitting on @ and taking the last element should be fine, because no @ characters are allowed to appear in the domain.

Or, since you requested, a regex: [^@]+$

Answer

You can do this

var extract_company_name = function(email){
  var temp = email.replace(/.*@/, '').split('.');
    return temp[temp.length - 2];
}
extract_company_name(email)

this will fetch the domain from any email.

code in jsbin

Answer

I would try

\b.*@([A-Za-z0-9.-]+\.[A-Za-z]{2,4})\b

Or maybe tune it a little replacing \bs by ^ and $. With this you can match any domain with A-Z, a-z and 0-9 characters.

Answer
var email = '[email protected]';
var domain = email.replace(/.*@/, "").split('.')[0];
console.log(domain); // gmail
Answer

You can do this to get domain name from url,email,website,with http started,only domain name

var str=inputAddress;
      var patt1 = "(http://|https://|ftp://|www.|[a-z0-9._%+-][email protected])([^/\r\n]+)(/[^\r\n]*)?";
var result = str.match(patt1);
var domain=result===null?str:result[2];
return domain.toString().startsWith("www.")?domain.toString().slice(4):domain;

Tags

Recent Questions

Top Questions

Home Tags Terms of Service Privacy Policy DMCA Contact Us

©2020 All rights reserved.