[email protected]
のようなメールアドレスからドメイン名gmail.com
を取得したい。 Javascriptのテキストボックス値にそのパターンを使用したいと思います。
ピーズは私に上記の要件のために最適化されたより速いpregパターンを提案します...
@
記号までのすべてを置き換えて、ドメインを取得できます。 Javascriptの場合:
var email = '[email protected]';
var domain = email.replace(/.*@/, "");
alert(domain);
なぜこれをしないのですか。
_var email = "[email protected]", i = email.indexOf("@");
if (i != -1) {
email = email.substring(i);
}
_
正規表現は実際には必要ありません。email = email.split("@")[1];
に移動することもできます。
単純な文字列分割を使用しても、(技術的には)有効なアドレスである'abc@abc'@example.com
のようなアドレスでは機能しません。ドメインに@
文字を表示することは許可されていないため、@
で分割してlast要素を取得することは問題ないと思います。
または、リクエストしたので、正規表現:[^@]+$
私はこれを実装する必要性を経験し、すでに述べた手法のほとんどを組み合わせたソリューションを思いつきました。
var email = "test@[email protected]";
var email_string_array = email.split("@");
var domain_string_location = email_string_array.length -1;
var final_domain = email_string_array[domain_string_location];
したがって、電子メールに複数の@文字がある場合は、電子メール文字列を「@」で分割し、新しく作成された配列にある要素の数を計算してから1を引くだけで、その数の配列から正しい要素を取得できます。
これがjsfiddleです: http://jsfiddle.net/47yqn/
それは私にとって100%の成功を示しています!
やってみます
\b.*@([A-Za-z0-9.-]+\.[A-Za-z]{2,4})\b
または、\b
sを^
と$
に置き換えて少し調整します。これにより、A〜Z、a〜z、0〜9文字の任意のドメインに一致させることができます。
var email = '[email protected]';
var domain = email.replace(/.*@/, "").split('.')[0];
console.log(domain); // gmail
あなたはこれを行うことができます
var extract_company_name = function(email){
var temp = email.replace(/.*@/, '').split('.');
return temp[temp.length - 2];
}
extract_company_name(email)
これにより、任意の電子メールからドメインがフェッチされます。
これを行うと、URL、メール、ウェブサイトからドメイン名を取得できます。httpを開始し、ドメイン名のみを取得します。
var str=inputAddress;
var patt1 = "(http://|https://|ftp://|www.|[a-z0-9._%+-]+@)([^/\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;