RegEx无法识别无效的电子邮件

我正在尝试验证表单元素的电子邮件地址。 我熟悉正则表达式,所以我相信这部分是正确的,但我希望它在输入的电子邮件无效时显示警报。 我的问题是,即使我输入了无效的电子邮件地址,而不是弹出警报窗口,表单也会提交。

JavaScript中的RegEx函数:

function validateEmail()
            {
                var myEmailRegEx = /w+@w+.[a-z]|[A-Z]|d|.|-{2,}/

                if(myEmailRegEx.test(document.getElementById("EmailAddress")))
                {
                    return true;
                }
                else
                {
                    alert("That is not a valid email address");
                    return false;
                }
            }

表单HTML:

<input type="text" name="Email" id="EmailAddress" size="50" />
        <br />
        <input type="submit" value="Submit Email" onClick="validateEmail();" />

只是为了清楚起见,你所做的事情的问题是你正在给一个正则表达式进行测试,它总是返回true(虽然很奇怪)。 使用.value我们得到字段保存的字符串,然后对它进行正则表达式测试。

你应该使用,

var myEmailRegEx = new RegExp("/w+@w+.[a-z]|[A-Z]|d|.|-{2,}")
myEmailRegEx.test(document.getElementById("EmailAddress").value)

假设电子邮件地址以id =“my_form”的形式出现。 为了防止默认提交表单,您可以使用

$("#my_form").preventDefault();

如果电子邮件结果是真实的,则可以提交表单。

if(myEmailRegEx.test(document.getElementById("EmailAddress").value)){
   document.getElementById("mu_form").submit();
}

应该是这样。 我希望你有一个想法在哪里插入这些代码片段:-)


可以这样做:

<input type="email" />

并完成它。


尝试在输入字段中使用包含电子邮件的onchange事件。 例如:

<input type="text" name="Email" id="EmailAddress" size="50" onchange="validateEmail();" />
<br />
<input type="submit" value="Submit Email"/>

只要该字段中的值发生更改,上述方法就会调用validateEmail函数。

链接地址: http://www.djcxy.com/p/92589.html

上一篇: RegEx Not Recognizing Invalid Email

下一篇: VB.NET email validation with Regex