【Javacript】入门之正则匹配密码和邮箱

描述: 1.正则匹配密码

  • 6-18
  • 密码:
    • 初级: 纯数字和纯字母
    • 中级: 数字和字母的组合 , 首位必须是字母
    • 高级: 数字和字母和特殊符号的组合, 首位是字母
代码实现
// 1.设置密码
var str = 'qwerty';
// 2.初级: 纯数字或者纯字母
var reg = /^\d{6,18}$|^[a-zA-Z]{6,18}$/;
console.log(reg.test(str));

// 2.中级: 数字和字母的组合  
// 首位必须是字母
var str1 = 'qwrtee555st';
var reg = /(?!^[a-zA-Z]{6,18}$)^[a-zA-Z][0-9a-zA-Z]{5,17}$/;
console.log(reg.test(str1));
// 3.高级: 数字和字母和特殊符号的组合, 首位是字母
var str2 = '5wert55tw2#***'
var reg = /(?!^[!/@#$%^&*()_+{}]{6,18}$)(?!^\d{6,18}$)(?!^[a-zA-Z]{6,18}$)^[a-zA-Z][0-9a-zA-Z!/@#$%^&*()_+{}]{5,17}$/;
console.log(reg.test(str2));

2. 正则匹配邮箱

  • 邮箱: qq sina github google 163 189
  • qwer@qq sina189.com net edu
  • 要匹配一整个字符串是否符合某个规则
  • jiaxin_123 .在正则表示除换行以外的任意一个字符
  • 从特殊符号转换成字符需要加\
代码实现
 var str3 = '62455@qq.com';
 var reg = /^\w{3,}@[0-9a-zA-Z]{2,}\.(com|cn|net|edu)$/;
 console.log(reg.test(str3));

3.登录模拟实例(利用正则)

在这里插入图片描述

代码实现
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>注册页面的验证</title>
    <style>
        *{
            margin: 0;
            padding: 0;
        }
        #form{
            margin: 20px 0 0 10px;
        }
        input{
            outline:none;
            text-indent: 5px;
        }
        i{
            color:#FF514F;
        }
    </style>
</head>
<body>
    <form id="form">
        <p>
            请输入账号:
            <input type="text" name = "userId" id = "userId" autocomplete="off">
            <span></span>
            <i>*</i> 用户名以字母开头, 必须字母和数字的组合
        </p>
        <p>
            请输入密码:
            <input type="password" name = "password" id = "password" autocomplete="off">
            <span></span>
            <i>*</i> 必须字母和数字的组合 5--10
        </p>
        <p>
            请输入手机号:
            <input type="phonenumber" name = "phoneNumber" id = "phonenumber" autocomplete="off">
            <span></span>
        </p>
        <p>
            请输入邮箱:
            <input type="email" name = "email" id = "email" autocomplete="off">
            <span></span>
        </p>
    </form>
    <script>
        // 1.获取表单, input, span元素
        var form = document.getElementById('form');
        var inps = document.querySelectorAll('input');
        var spans= document.querySelectorAll('span');
        console.log(form, inps , spans);
        // 2.一边输入获取用户名的输入值 表单元素值的获取 form.name值.value
        // 用户名以字母开头, 必须字母和数字的组合6-18位
        var reg = /(?!^[a-zA-Z]{6,18}$)^[a-zA-Z][0-9a-zA-Z]{5,17}$/;
        // zc(0, reg);
        // 2.一边输入获取密码的输入值 表单元素值的获取 form.name值.value
        // 密码以字母开头, 必须字母和数字的组合5-10位
        var reg1 = /(?!^\d{5,10}$)(?!^[a-zA-Z]{5,10}$)^[0-9a-zA-Z]{5,10}$/;
        // zc(1,reg1);
        // 3.一边输入获取手机号的输入值 表单元素值的获取 form.name值.value
        // 手机号全部为数字, 位数在
        var reg2 = /^1[3-9]\d{9}$/;
        // zc(2, reg2);
        // 4.一边输入获取邮箱的输入值 表单元素值的获取 form.name值.value
        // 手机号全部为数字, 位数在11位, 第一位为1
        var reg3 = /^\w{3,}@[0-9a-zA-Z]{2,}\.(com|cn|net|edu)$/;
        // 调用正则
        // zc(3, reg3);

        // 每一个下标改变, 正则一一对应
        var arr = [reg, reg1, reg2, reg3];

        // 调用函数, 循环
        for(var i = 0; i < arr.length; i++){
            zc(i, arr[i]);
        }


        // 如果下标并非一个元素使用, 需要抽取下标
        function zc(index, reg){
            inps[index].onblur = function(){
                // 判断正则, 标记正确或者错误
                if(!reg.test(this.value)){
                    spans[index].innerHTML = '错误';
                    spans[index].style.color = '#FB1010';
                }else{
                    spans[index].innerHTML = '正确';
                    spans[index].style.color = '#3D850C';
                }    
            }
        } 
    </script>
</body>
</html>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值