javascript - RegEx 无法识别无效电子邮件

标签 javascript html regex email

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

javascript 中的正则表达式函数:

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();
}

应该是这样的。我希望您知道在哪里插入这些代码片段:-)

关于javascript - RegEx 无法识别无效电子邮件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22463651/

相关文章:

html - HTML SELECT 元素是否需要 value 属性?

javascript - 为什么这个正则表达式不适用于 JavaScript?

python - 将两种模式与 Python 中的命名捕获组结合起来?

php - unicode 字符的正则表达式,如\xe2\x98\xba

javascript - 如何设置变量以便 D3 数据更新找到正确的对象属性?

html - 动态背景颜色

javascript - 使触摸设备上的缩放行为更像在桌面上

javascript - 轮播 slider - 链接在其他子页面上不起作用

javascript - 模态窗口在右侧略微移动

javascript - 关注ajax生成的文本框