我的jquery正则表达式不起作用(电子邮件地址验证)

时间:2015-08-12 15:55:12

标签: javascript jquery regex

我已经尝试过很多东西,但我似乎无法让它发挥作用 问题是,即使我尝试有效的电子邮件地址(例如ok@gmail.com)

,我输入的内容也被认为是假的

这是我的代码



SELECT BinType FROM NF_WhatWasteWhere WHERE ID=" + ItemType1.DataValueField

function validateEmail(email) {
        var re = /[^\s@]+@[^\s@]+\.[^\s@]+/;
        return re.test(email);
    }

	var email = $('input[name = pEmail]').val();  
	
	$('#nPopupSubmit').click(function () {
	        if (!validateEmail(email)) {
	            $('label[id = pEmailError]').show();
	            $('input[name = pEmail]').focus();  
	            return false; 
              } else {
                whatever
              });




你们中的任何人都知道发生了什么事吗? 谢谢!

2 个答案:

答案 0 :(得分:2)

你的函数不包含错误,也许你的jQuery?您应该在点击后定义email变量,否则email的值始终为= "Email"(默认值)

$('#nPopupSubmit').click(function () {
    var email = $('#pEmail').val();  //<-- This is where you should put this
    if (!validateEmail(email)) {
        $('#pEmailError').show();
        $('#pEmail').focus();  
        return false; 
    } else {
        //whatever
    }
});

此外,您可以使用已经提供元素的id来简化代码:)

&#13;
&#13;
function validateEmail(email) {
  var re = /[^\s@]+@[^\s@]+\.[^\s@]+/;
  return re.test(email);
}
	
$('#nPopupSubmit').click(function () {
  var email = $('#pEmail').val();  
  if (validateEmail(email) !== true) {
    $('#pEmailError').show();
    $('#pEmail').focus();  
    return false; 
  } else {
    //whatever
  }
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<form id="popup1" method="post">
  <fieldset>    
    <input id="pEmail" type="text" placeholder="E-mail" value="E-mail" onclick="this.value=''" class="popup_input" name="pEmail" type="text" /> 
    <label id="pEmailError" style="color:#FF0000; display:none;">Error</label>
    <button type="submit" id="nPopupSubmit" name="nPopupSubmit">Go !</button>          
  </fieldset>
</form>
&#13;
&#13;
&#13;

答案 1 :(得分:1)

您当前的正则表达式无法验证您的需求。

你可以试试这个:

$primary-color: #XXXXXX;
$error-color: #YYYYYY;

// Body content
.body-content {
  background-color: $primary-color;
  margin: 10px;
  padding: 10px;
}
.body-content--error {
  background-color: $error-color;
}

//Button (primary)
.btn-primary {
  background-color: $primary-color;
}
.btn-primary--error {
  background-color: $error-color;
}

// Links in the .content list
.content-list-link {
  color: $primary-color;
  border-color: $primary-color;
  &:hover {
    background-color: $primary-color;
  }
}
.content-list-link--error {
  color: $error-color;
  border-color: $error-color;
  &:hover {
    background-color: $error-color;
  }
}
function validateEmail(email) {
    var re = new RegExp("^[^\\s@]+@[^\\s@]+?\\.[^\\s@]+$", "m");
    console.log(email.match(re));
	if(email.match(re))
	{
	    return true;
    }
	else
	{
		return false;
	}
}

window.alert(validateEmail("a@b.c"));
window.alert(validateEmail("a @b.c"));

希望有所帮助。如果您对细节有任何疑问,请告诉我......