Javascriptを使用してEメールアドレスの検証を行う方法(JQueryなし)

入力テキストフィールドに対して電子メールアドレスの検証を実行しようとしていますが、エントリがnullではなく@文字が含まれている場合にのみ送信する必要があります

例1は動作するものですが、@ charの必要性は排除されています。

function emailvalidation() {
var x=document.forms["input"]["email"].value;

if (x==null || x=="") {
    alert("Input email address, please!");
return false
}

うまくいかないが、それが書かれるだろうと私が想像する方法である例2

    function emailvalidation() {
var x=document.forms["input"]["email"].value;
var email = /^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/;

if (x<>null || x<>"" && x.value.match(email)) {
    alert("Input email address, please!");
return true
} else {
    alert("Input email address, please!");
return false
}
}

誰かアイデアがありますか?できればありがとう、できればJQueryなしで!ありがとうございます。

0
「機能しない」とはどういう意味ですか?あなたは誤検知を受けますか?
追加された 著者 Cristik,
@ 記号だけが必要な場合は、 x.indexOf( '@')!= -1 を使用しないでください。 x は既になので、2番目の関数には x.value.match(email)ではなく x.match(email)を使用する必要があります。 > value
追加された 著者 putvande,
@ 記号だけが必要な場合は、 x.indexOf( '@')!= -1 を使用しないでください。 x は既になので、2番目の関数には x.value.match(email)ではなく x.match(email)を使用する必要があります。 > value
追加された 著者 putvande,
@ 記号だけが必要な場合は、 x.indexOf( '@')!= -1 を使用しないでください。 x は既になので、2番目の関数には x.value.match(email)ではなく x.match(email)を使用する必要があります。 > value
追加された 著者 putvande,
うまくいかないと言ったら、2番目の例に失敗する例はありますか。 <>!== に置き換えてみましたか?このフィドルで動作します。あなたは||を変更したいでしょう。 &&にも。要素の代わりに文字列を使用しているので、 x.value.match()から .value を削除する必要がありました。
追加された 著者 adamdc78,
うまくいかないと言ったら、2番目の例に失敗する例はありますか。 <>!== に置き換えてみましたか?このフィドルで動作します。あなたは||を変更したいでしょう。 &&にも。要素の代わりに文字列を使用しているので、 x.value.match()から .value を削除する必要がありました。
追加された 著者 adamdc78,
うまくいかないと言ったら、2番目の例に失敗する例はありますか。 <>!== に置き換えてみましたか?このフィドルで動作します。あなたは||を変更したいでしょう。 &&にも。要素の代わりに文字列を使用しているので、 x.value.match()から .value を削除する必要がありました。
追加された 著者 adamdc78,
正規表現を使用して有効なEメールを検証できます。あなたはこれを参照することができます[post] [1] [1]: stackoverflow.com/questions/46155/…
追加された 著者 Ari Djemana,
正規表現を使用して有効なEメールを検証できます。あなたはこれを参照することができます[post] [1] [1]: stackoverflow.com/questions/46155/…
追加された 著者 Ari Djemana,

12 答え

もう1つのEメール検証。

function isValidEmailAddress(emailAddress) {
            var pattern = new RegExp(/^((([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+(\.([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+)*)|((\x22)((((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(([\x01-\x08\x0b\x0c\x0e-\x1f\x7f]|\x21|[\x23-\x5b]|[\x5d-\x7e]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(\\([\x01-\x09\x0b\x0c\x0d-\x7f]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]))))*(((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(\x22)))@((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.?$/i);
            return pattern.test(emailAddress);
        };
1
追加された

もう1つのEメール検証。

function isValidEmailAddress(emailAddress) {
            var pattern = new RegExp(/^((([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+(\.([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+)*)|((\x22)((((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(([\x01-\x08\x0b\x0c\x0e-\x1f\x7f]|\x21|[\x23-\x5b]|[\x5d-\x7e]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(\\([\x01-\x09\x0b\x0c\x0d-\x7f]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]))))*(((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(\x22)))@((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.?$/i);
            return pattern.test(emailAddress);
        };
1
追加された

もう1つのEメール検証。

function isValidEmailAddress(emailAddress) {
            var pattern = new RegExp(/^((([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+(\.([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+)*)|((\x22)((((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(([\x01-\x08\x0b\x0c\x0e-\x1f\x7f]|\x21|[\x23-\x5b]|[\x5d-\x7e]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(\\([\x01-\x09\x0b\x0c\x0d-\x7f]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]))))*(((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(\x22)))@((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.?$/i);
            return pattern.test(emailAddress);
        };
1
追加された

最初のスクリプトと要件に基づいて、正規表現なしのソリューションと、正規表現のないソリューション

text-inputフィールドは文字列のみを返すことに注意してください。 Eメールアドレスは @ </</code>の前にある必要があるので、最初の文字の後に @ が表示されているかどうかを確認します(不要な indexOf を使用)。正規表現)また、 @ が見つかった場合は、文字列が空ではなかったことを意味します。
@ が最後の @ </</code>と同じ位置にあり、この位置が文字列全体の長さよりも小さい場合、これは true になります。または false 値で、すぐに return できます。
3つの条件のいずれも満たされない場合は、エラーメッセージをアラートします。 alertundefined を返します(それ自体はJavaScriptでは false を強制しますが)、これを強制的にブール値の false にします。 doubleを使用しない !! および return その値。

2番目の例も同じロジックに従いますが、正規表現を使用します。

<div class="snippet" data-lang="js" data-hide="false" data-console="false" data-babel="false"> <div class="snippet-code">

function emailvalidation(){ //without regex
  var s=document.forms.input.email.value
  ,   x=s.indexOf('@');
  return( x>0 && x===(x=s.lastIndexOf('@')) && x
<form name="input">
  <input name="email" type="text" />
</form>
<button onclick="alert(emailvalidation())">test</button>
</div> </div>

最後に、正規表現で良い仕事をしようとするのは長く困難であるため、メールアドレスを受け入れることに寛大であることをお勧めします。例えば、この正規表現を参照してください。 http://www.ex-parrot.com/pdw/Mail-RFC822-Address.html
ユーザーにEメールを送信して応答を待つ以外に、有効なEメールアドレスを確認する100%信頼できる方法はありません。 https://softwareengineering.stackexchange.com/も参照してください。質問/ 78353 /電子メールアドレスの検証をどの程度行うべきか
あなたがする「有効なEメールアドレス」を正規表現しようとすると、あなたにはあなたは彼/彼女/彼女に費用がかかることになっていることを伝えます。 /現金 !!!

0
追加された

最初のスクリプトと要件に基づいて、正規表現なしのソリューションと、正規表現のないソリューション

text-inputフィールドは文字列のみを返すことに注意してください。 Eメールアドレスは @ </</code>の前にある必要があるので、最初の文字の後に @ が表示されているかどうかを確認します(不要な indexOf を使用)。正規表現)また、 @ が見つかった場合は、文字列が空ではなかったことを意味します。
@ が最後の @ </</code>と同じ位置にあり、この位置が文字列全体の長さよりも小さい場合、これは true になります。または false 値で、すぐに return できます。
3つの条件のいずれも満たされない場合は、エラーメッセージをアラートします。 alertundefined を返します(それ自体はJavaScriptでは false を強制しますが)、これを強制的にブール値の false にします。 doubleを使用しない !! および return その値。

2番目の例も同じロジックに従いますが、正規表現を使用します。

<div class="snippet" data-lang="js" data-hide="false" data-console="false" data-babel="false"> <div class="snippet-code">

function emailvalidation(){ //without regex
  var s=document.forms.input.email.value
  ,   x=s.indexOf('@');
  return( x>0 && x===(x=s.lastIndexOf('@')) && x
<form name="input">
  <input name="email" type="text" />
</form>
<button onclick="alert(emailvalidation())">test</button>
</div> </div>

最後に、正規表現で良い仕事をしようとするのは長く困難であるため、メールアドレスを受け入れることに寛大であることをお勧めします。例えば、この正規表現を参照してください。 http://www.ex-parrot.com/pdw/Mail-RFC822-Address.html
ユーザーにEメールを送信して応答を待つ以外に、有効なEメールアドレスを確認する100%信頼できる方法はありません。 https://softwareengineering.stackexchange.com/も参照してください。質問/ 78353 /電子メールアドレスの検証をどの程度行うべきか
あなたがする「有効なEメールアドレス」を正規表現しようとすると、あなたにはあなたは彼/彼女/彼女に費用がかかることになっていることを伝えます。 /現金 !!!

0
追加された

最初のスクリプトと要件に基づいて、正規表現なしのソリューションと、正規表現のないソリューション

text-inputフィールドは文字列のみを返すことに注意してください。 Eメールアドレスは @ </</code>の前にある必要があるので、最初の文字の後に @ が表示されているかどうかを確認します(不要な indexOf を使用)。正規表現)また、 @ が見つかった場合は、文字列が空ではなかったことを意味します。
@ が最後の @ </</code>と同じ位置にあり、この位置が文字列全体の長さよりも小さい場合、これは true になります。または false 値で、すぐに return できます。
3つの条件のいずれも満たされない場合は、エラーメッセージをアラートします。 alertundefined を返します(それ自体はJavaScriptでは false を強制しますが)、これを強制的にブール値の false にします。 doubleを使用しない !! および return その値。

2番目の例も同じロジックに従いますが、正規表現を使用します。

<div class="snippet" data-lang="js" data-hide="false" data-console="false" data-babel="false"> <div class="snippet-code">

function emailvalidation(){ //without regex
  var s=document.forms.input.email.value
  ,   x=s.indexOf('@');
  return( x>0 && x===(x=s.lastIndexOf('@')) && x
<form name="input">
  <input name="email" type="text" />
</form>
<button onclick="alert(emailvalidation())">test</button>
</div> </div>

最後に、正規表現で良い仕事をしようとするのは長く困難であるため、メールアドレスを受け入れることに寛大であることをお勧めします。例えば、この正規表現を参照してください。 http://www.ex-parrot.com/pdw/Mail-RFC822-Address.html
ユーザーにEメールを送信して応答を待つ以外に、有効なEメールアドレスを確認する100%信頼できる方法はありません。 https://softwareengineering.stackexchange.com/も参照してください。質問/ 78353 /電子メールアドレスの検証をどの程度行うべきか
あなたがする「有効なEメールアドレス」を正規表現しようとすると、あなたにはあなたは彼/彼女/彼女に費用がかかることになっていることを伝えます。 /現金 !!!

0
追加された

You have a couple of logical problems in your solution.
Firstly, the condition is that x is not null and x is not an empty string and x matches the pattern.
Secondly, <> is the wrong comparator for javascript; use != or !==.
Thirdly, as pointed out by putvande x is already the element's value, so x.value.match() is probably causing you issues.

function emailvalidation() {
  var x = document.forms["input"]["email"].value;
  var email = /^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/;

  if (x !== null && x !== "" && x.match(email)) {
    return true;
  } else {
    alert("Input email address, please!");
    return false;
  }
}
0
追加された
私はこれを手に入れたときに私自身のコメントを書いただけです、どうもありがとうございました、あなたは私にたくさんのことを教えてくれました! :)
追加された 著者 WorkingScript,

You have a couple of logical problems in your solution.
Firstly, the condition is that x is not null and x is not an empty string and x matches the pattern.
Secondly, <> is the wrong comparator for javascript; use != or !==.
Thirdly, as pointed out by putvande x is already the element's value, so x.value.match() is probably causing you issues.

function emailvalidation() {
  var x = document.forms["input"]["email"].value;
  var email = /^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/;

  if (x !== null && x !== "" && x.match(email)) {
    return true;
  } else {
    alert("Input email address, please!");
    return false;
  }
}
0
追加された
私はこれを手に入れたときに私自身のコメントを書いただけです、どうもありがとうございました、あなたは私にたくさんのことを教えてくれました! :)
追加された 著者 WorkingScript,

You have a couple of logical problems in your solution.
Firstly, the condition is that x is not null and x is not an empty string and x matches the pattern.
Secondly, <> is the wrong comparator for javascript; use != or !==.
Thirdly, as pointed out by putvande x is already the element's value, so x.value.match() is probably causing you issues.

function emailvalidation() {
  var x = document.forms["input"]["email"].value;
  var email = /^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/;

  if (x !== null && x !== "" && x.match(email)) {
    return true;
  } else {
    alert("Input email address, please!");
    return false;
  }
}
0
追加された
私はこれを手に入れたときに私自身のコメントを書いただけです、どうもありがとうございました、あなたは私にたくさんのことを教えてくれました! :)
追加された 著者 WorkingScript,

どうもありがとうございました!解決策は、すべての答えを組み合わせたものでした。しかし、これが最終的な解決策です。新しいreg式と!==が必要です

JS初心者から、本当にありがとうございます

function emailvalidation() {

var x=document.forms["input"]["email"].value;
var email = /^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/;

if (x !== null && x !== "" && x.match(email)) {
return true
} else {
    alert("Input email address, please!");
return false
}
}
0
追加された

どうもありがとうございました!解決策は、すべての答えを組み合わせたものでした。しかし、これが最終的な解決策です。新しいreg式と!==が必要です

JS初心者から、本当にありがとうございます

function emailvalidation() {

var x=document.forms["input"]["email"].value;
var email = /^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/;

if (x !== null && x !== "" && x.match(email)) {
return true
} else {
    alert("Input email address, please!");
return false
}
}
0
追加された

どうもありがとうございました!解決策は、すべての答えを組み合わせたものでした。しかし、これが最終的な解決策です。新しいreg式と!==が必要です

JS初心者から、本当にありがとうございます

function emailvalidation() {

var x=document.forms["input"]["email"].value;
var email = /^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/;

if (x !== null && x !== "" && x.match(email)) {
return true
} else {
    alert("Input email address, please!");
return false
}
}
0
追加された
JavaScript - 日本のコミュニティ
JavaScript - 日本のコミュニティ
2 参加者の

日本人コミュニティのjavascript