-5

私のコードの何が問題になっていますか?解決策が見つかりません。

var re = "/^(([^<>()[\]\\.,;:\s@\"]+(\.[^<>()[\]\\.,;:\s@\"]+)*)|(\".+\"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/";

var email= document.getElementById("email").value;

if (re.test(email) == false) {  
    document.getElementById("email").focus();
    return false;
}

二重引用符が問題の原因でした。ありがとうございます。私の評判のために投票できません:-(

4

2 に答える 2

1

sureshが提案したように、正規表現文字列を囲む引用符( ")を削除する必要があります。したがって、最初の行は次のようになります。

var re = /^(([^<>()[\]\\.,;:\s@\"]+(\.[^<>()[\]\\.,;:\s@\"]+)*)|(\".+\"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/;

以下に実際の例を作成しました。

<script>
function test()
{
  var re = /^(([^<>()[\]\\.,;:\s@\"]+(\.[^<>()[\]\\.,;:\s@\"]+)*)|(\".+\"))@((\[[0-9]    {1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/;
  var email= "test@somedomain.com";

  if (re.test(email) == false) {  
    alert("invalid email address");
    return;
  }
  alert("valid address");
}
</script>
<button onclick="test()">TEST</button>
于 2012-08-24T11:53:05.960 に答える
-1

私にとって賢く働いているこれを一度試してみましょう

  function IsEmail(email) {
                var regex = /^([a-zA-Z0-9_\.\-\+])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
                return regex.test(email);
             }

if(!IsEmail(mailString)){
                $("#somediv").text(" Email should be valid ");
                return false;
                }
于 2012-08-24T09:29:58.447 に答える