简单的表单(QQ邮箱及密码登陆)正则验证

这篇博客介绍了一个简单的前端邮箱验证和密码输入的实现。通过JavaScript代码,当用户点击登录按钮时,会检查邮箱输入是否符合正则表达式,如果格式正确,邮箱输入框边框变为绿色并隐藏错误提示;否则,边框变红并显示错误信息。此实现有助于提高用户输入的准确性。

 

 

 <style>
        #p1 {
            /* display: none; */
            /* visibility: visible; */
            visibility: hidden;
            color: red;
        }

        button {
            width: 100px;
            height: 30px;
            margin-top: 10px;
            margin-left: 60px;
        }
    </style>
    <div>
        email:&nbsp;&nbsp;<input type="text" id="email" placeholder="请输入邮箱"> <br>
        <p id="p1">邮箱格式错误,请重新输入</p>
        pwd:&nbsp;&nbsp;<input type="password" id="pwd" placeholder="请输入密码"> <br>
        <button id="btn">登录</button>
    </div>

    <script>
        /* 
        1、分别获取登陆按钮、输入框节点
        2、用正则表达式来判断输入邮箱是否符合格式
        3、给按钮绑定点击事件
        4、.test判断用户输入值是否匹配
           4.1、如匹配输入框的边框变为绿色,并且提示用户输入信息错误的文字隐藏
           4.2、如不匹配输入框的边框变为红色,并且提示用户输入信息错误
        */
        var btn = document.getElementById("btn")
        btn.onclick = function () {

            var email = document.getElementById("email")
            var emailValue = email.value
            var pwd = document.getElementById("pwd").value
            var emailreg = /^[A-Za-z0-9\u4e00-\u9fa5]+@[a-zA-Z0-9_-]+(\.[a-zA-Z0-9_-]+)+$/

            if (emailreg.test(emailValue)) {

                email.style.border = "2px solid green"
                document.querySelector('#p1').style.visibility = 'hidden'
            } else {
                email.style.border = "2px solid red"
                document.querySelector('#p1').style.visibility = 'visible'

                //这里使用visibility是因为占文档流位置,而display:none不占文档流位置
            }
        }



    </script>

### JavaScript 邮箱验证正则表达式(包含QQ邮箱支持) 在JavaScript中,邮箱验证正则表达式可以通过分析邮箱的结构来构建。对于QQ邮箱的支持,需要确保正则表达式能够匹配形如`1234567890@qq.com`或`1234567890@qQ.com`的格式[^4]。 以下是一个适用于JavaScript正则表达式,用于验证邮箱地址,同时支持QQ邮箱: ```javascript function validateEmail(email) { var regex = /^[a-zA-Z0-9_.-]+@[a-zA-Z0-9-]+(\.[a-zA-Z0-9-]+)*\.[a-zA-Z0-9]{2,6}$/; if (!regex.test(email)) { alert("邮箱格式错误!"); return false; } else { alert("邮箱格式正确!"); return true; } } // 测试代码 var email1 = "test@qq.com"; var email2 = "invalid_email"; validateEmail(email1); // 输出: 邮箱格式正确! validateEmail(email2); // 输出: 邮箱格式错误! ``` 上述正则表达式的含义如下: - `^[a-zA-Z0-9_.-]+`:匹配邮箱地址的用户名部分,允许字母、数字、下划线、点和减号[^1]。 - `@[a-zA-Z0-9-]+`:匹配“@”符号后的域名主体部分,允许字母、数字和减号[^1]。 - `(\.[a-zA-Z0-9-]+)*`:匹配可能存在的子域名部分,允许多个点和后续的字母、数字及减号[^1]。 - `\.[a-zA-Z0-9]{2,6}$`:匹配顶级域名部分,要求至少2个字符,最多6个字符。 #### QQ邮箱特定规则 如果需要更严格的QQ邮箱验证,可以使用以下正则表达式: ```javascript function validateQQEmail(email) { var regex = /^\d{5,12}@[qQ]{2}\.(com|cn)$/; if (!regex.test(email)) { alert("QQ邮箱格式错误!"); return false; } else { alert("QQ邮箱格式正确!"); return true; } } // 测试代码 var qqEmail1 = "1234567890@qq.com"; var qqEmail2 = "1234567890@qQ.cn"; validateQQEmail(qqEmail1); // 输出: QQ邮箱格式正确! validateQQEmail(qqEmail2); // 输出: QQ邮箱格式正确! ``` 该正则表达式的含义为: - `^\d{5,12}`:匹配QQ号码部分,要求长度为5到12位的纯数字。 - `@[qQ]{2}`:匹配“@”符号后必须是`qq`或`Qq`或`qQ`或`QQ`[^4]。 - `\.(com|cn)$`:匹配顶级域名部分,仅允许`.com`或`.cn`[^4]。 ### 注意事项 - 如果需要支持更多类型的邮箱(例如`gmail.com`或`yahoo.com`),可以扩展正则表达式中的顶级域名部分[^1]。 - 在实际应用中,建议对用户输入进行前后修剪以去除多余的空格[^3]。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值