正则表达式

1.正则:字符串正确的规则

2.作用

①前端往往有大量数据效验工作,正则对象可以控制字符串的格式,从而境地服务器压力,提高程序运行效率

②正则表达式验证数据格式  前端

    服务器验证数值         后端

③JS的正则表达式通常都围绕着表单验证

3.正则的创建


a.构造方法

语法:var reg = new RegExp("格式字符串",["修饰符"]);

b.字面量

var reg = /格式字符串/修饰符;


 注意事项:

    以下情况用构造方法创建正则(数组的建立)

         var arr = ["heihei","haha","yingying"];

          var reg = new RegExp(arr[0]);


3.正则的格式字符串

格式字符串:普通字符+特殊字符

    ①普通字符:普通的字符,看起来是什么就是什么

    ②特殊字符:拥有特殊含义的字符

    a.单个字符

    b.组合字符

    c.各种括号

  

③至少包含

语法:使用      /内容/

                //至少包含一个a

                        var reg = /a/;

                //至少包含连续的5个a

                        reg = /aaaaa/;

④只能包含

        语法:同时存在,同时消失,,, ^:正则开始,,,$:正则结束

//只能包含一个a
        reg = /^a$/;

        //只能包含3个a 
        reg = /^aaa$/;

        //以b开头  至少3个a  至多5个a
        reg = /^ba{3,5}$/;

        //  6个5
        reg = /^5{6}$/;

        //邮编   6位数字  
        reg = /^\d{6}$/;

        //定义一个由字母或数字或下划线组成的用户名   范围在6,18之间   
        reg = /^\w{6,18}$/;

        // 定义一个由字母或数字或下划线组成的用户名 但是首字母不为数字   
        reg = /^\D\w{5,17}$/; 

        //定义一个密码 至少6位
        reg = /^.{6,}$/;

        //  www.baidu.com
        reg = /^www\.baidu\.com$/;

        //写一个3+5
        //+:{1,}
        reg = /^3\+5$/;

        //以 13 或 15 开头的手机号
        // 或的表示方法
        // a. (xxx|xxx|xxx)
        reg = /^1(3|5)\d{9}$/;

        // b.[x1x2x3x4]
        reg = /^1[35]\d{9}$/;

        //只能是a-f和0-6的区间
        reg = /^[a-f][0-6]$/;

        //空格
        reg = /^\s$/;

        // [\u4e00-\u9fa5] 中文字符区间
        //两个中文
        reg = /^[\u4e00-\u9fa5]{2}$/;

        //除了
        //[^x1x2x3]
        reg = /^[^abc]$/;

 4.密码强度的判断

规则:由数字,字母,其他字符构成,,纯数字,纯字母,纯其他字符为弱,,全都有为强,其他情况为中

<body>
    <input type="text" name="" id="">
    <button>验证</button>
</body>
</html>
<script>

    //至少包含
    var regNum = /\d+/;
    var regChar = /[a-zA-Z]+/;
    var regLetter = /[!@#$%]/;

    //只能
    var _regNum = /^\d+$/;
    var _regChar = /^[a-zA-Z]+$/;
    var _regLetter = /^[!@#$%]$/;

    var oBtn = document.querySelector("button");
    var oInput = document.querySelector("input");

    oBtn.onclick = function(){
        if(_regNum.test(oInput.value) || _regChar.test(oInput.value) || 
            _regLetter.test(oInput.value)){
            console.log("弱");
        }else if(regNum.test(oInput.value) && regChar.test(oInput.value) &&
            regLetter.test(oInput.value)){
            console.log("强");
        }else{
            console.log("中");
        }
    }
</script>

效果图:

5.表单的验证

表单:form

属性:①action:发送数据的地址,也就是服务器接收数据的文件

           ②method:数据提交的方式,与安全性和效率有关,get和post,默认为get

           ③get:安全性低,但效率高,携带数据量小

           ④post:安全性高,但效率低,携带数据量大

<body>
    <form action="ok.html" method="get">
        姓名:<input type="text"><br>
        密码:<input type="text"><br>
        <input type="submit" value="提交">
    </form>
</body> 
</html>
<script>
    var oF = document.querySelector("form");
    var oInputs = document.getElementsByTagName("input");

    oF.onsubmit = function(){
        var regName = /^\D\w{5,17}$/;
        var regPwd = /^.{6,}$/;

        if(!regName.test(oInputs[0].value)){
            return false;
        }

        if(!regPwd.test(oInputs[1].value)){
            return false;
        }

        return true;
    }
</script>

效果图:

6.焦点验证表单

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <form action="ok.html" method="get">
        姓名:<input type="text"><span></span><br>
        密码:<input type="text"><span></span><br>
        <input type="submit" value="提交">
    </form>
</body> 
</html>
<script>
    var oF = document.querySelector("form");
    var oInputs = document.getElementsByTagName("input");
    var oSpans = document.getElementsByTagName("span");
    var flagName = false;
    var flagPwd = false;
    oInputs[0].onblur = function(){
        var regName = /^\D\w{5,17}$/;
        if(regName.test(this.value)){
            oSpans[0].innerHTML = "姓名格式正确";
            flagName = true;
        }else{
            oSpans[0].innerHTML = "姓名格式不正确";
            flagName = false;
        }
    }
    oInputs[1].onblur = function(){
        var regPwd = /^.{6,}$/;
        if(regPwd.test(this.value)){
            oSpans[1].innerHTML = "密码格式正确";
            flagPwd = true;
        }else{
            oSpans[1].innerHTML = "密码格式不正确";
            flagPwd = false;
        }
    }

    oF.onsubmit = function(){
        if(flagName && flagPwd){
            return true;
        }else{
            return false;
        }
    }
</script>

效果图:

7.正则中的相关方法及其属性

正则相关的方法

①功能函数:test

        功能:判断目标字符串是否满足正则对象的格式

       参数:test(目标字符串)

      返回值:boolean


②exec

    功能:返回满足正则对象的子串

    参数:exec(目标字符串)

    返回值:满足正则对象的子串,存储在长度为1的数组

③修饰符g:全局

④  i:忽略大小写

字符串相关方法,正则对象作为参数

   ① search方法  返回与正则表达式查找内容匹配的第一个子字符串的位置

    用法:str.search(reg)

②match

    功能:返回满足正则的子串,存储在数组中

    参数:match(正则对象)

    返回值:满足正则的子串数组

③replace

    replace(参数1正则对象,参数2):用参数2,替换参数1,返回被替换的字符串

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

我是打工人

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值