Day13 正则(正则相关方法)

目录

一、正则对象的创建

1.构造方法

2.字面量方法

二、正则格式字符串

三、密码强度验证

四、表单验证

五。表单的焦点强化验证

六、正则相关的方法


一、正则对象的创建

1.构造方法

var reg=new RegExp(“格式控制字符串”,[“修饰符”]);

var reg=new RegExp("a")//判断目标字符串是否包含一个a

test:判断,目标字符串是否满足正则格式,返回布尔值

参数:test(目标字符串)

返回值:布尔值

console.log(res.test("abc"))

2.字面量方法

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

var reg=/a/;

二、正则格式字符串

格式字符串:普通字符,

                      特殊字符:a、单个字符

                                        b、组合字符

                                        c、各种括号


        单个字符:
        ^:正则开始
        $  : 正则结束
        .  : 元字符, 表示任意一个字符    
        \. : 表示转义字符       \.表示.
        +: 表示其前面紧挨着的字符至少出现1次 等价{1,}
        * :表示其前面出现的字符至少出现过0次  等价{0,}
        ?:  表示其前面出现的字符至少出现过0次,至多1次  等价{0,1}
        | : 表示或者
        组合字符:
        \d : 0-9之间的任意一个数字 \d只占一个位置 
        \D : 除了\d
        \w : 数字,字母 ,下划线 0-9 a-z A-Z _ 
        \W : 除了\w
        \s : 空格或者空白等 
        \S : 除了\s

        括号:
       {m,n}表示括号前面紧挨着的字符至少出现m个,至多出现n个 : 以b开头  至少3个a  至多5个        a       /^ba{3,5}&/
    {m}表示括号前面紧挨着的字符只能出现m个              
    {m,}表示括号前面紧挨着的字符至少出现m个
    [] 表示括号内的任意一个字符
    [wd3h]
    [a-z]表示任意一个小写字母 [a-zA-Z0-9]
    [^  ]表示非括号内的任意一个字符
    ()一般与或连用 表示优先级
    [\u4e00-\u9fa5] 任意一个中文字符
 

<script>
    var reg=/a/;//包含一个a
    var reg=/^a$/;//只包含一个a
    var reg=/^ba{3,5}$/;//以b开头,至少3个a,至多5个a
    var reg=/^5{6}$/;//六个五
    var reg=/^\d{6}$/;//六位数字
    var reg=/^\w{6,18}$/;//定义一个由数字字母下划线组成的用户名,范围在6,18之间
    var reg=/^\D\w{5,17}$/;//定义一个由数字字母下划线组成的用户名,开头不能是数字,范围在6,18
    var reg=/^[a-zA-Z]\w{5,17}$/;//开头是字母组成
    var reg=/^.{6,}$/;//密码,至少六位
    var reg=/^www\.baidu\.com/;//网址中的点要用到转译字符
    var reg=/^1[35]\d{9}$/;//以13或15开头的手机号
    var reg=/^1(3|5)\d{9}$/;//以13或15开头的手机号
    var reg=/^(13|15)\d{9}$/;//以13或15开头的手机号
    var reg=/^[\u4e00-\u9fa5]{2}$/;//两个中文字符
</script>

test():正则表达式方法:验证某个字符串是否符合某个正则规范

三、密码强度验证

<script> 
    var regNum=/^\d+$/;//至少有
    var regLetter=/^[a-zA-Z]+$/;
    var regChar=/^[!@#$]+$/;
    var _regNum=/\d+/;//包含
    var _regLetter=/[a-zA-Z]+/;
    var _regChar=/[!@#$]+/;
    var mText=document.querySelector("input")
    var mBut=document.querySelector("button")
    mBut.onclick=function(){
        if(regNum.test(mText.value)||regLetter.test(mText.value)||regChar.test(mText.value)){
            alert('弱')
        }else if(_regNum.test(mText.value)&&_regLetter.test(mText.value)&&_regChar.test(mText.value)){
            alert("强")
        }else{
            alert("中")
        }
    }
</script>

四、表单验证

action:提交的服务器地址

method:数据提交的方式,默认为get

get:五菱宏光,效率高,安全性低,携带数据量小

post:武装押运,效率低,安全性高,携带数据量大

简易版

<script>
var mText=document.querySelectorAll("input[type=text]")
    var mF=document.querySelector("form")
    mF.onsubmit=function(){
        var regName=/^\w{6,18}$/;
        var regPas=/^.{6,}$/;
        if(!regName.test(mText[0].value)){
            return false;
        }
        if(!regPas.test(mText[1].value)){
            return false;
        }
        return true
    }

</script>

五。表单的焦点强化验证

<script> 
var mText=document.querySelectorAll("input[type=text]")
    var mF=document.querySelector("form")
    var mSpan=document.querySelectorAll("span")
    var flagName=false;
    var flagPas=false;
    mText[0].onblur=function(){
        var reg=/^\w{6,18}$/;
        if(reg.test(this.value)){
            flagName=true;
            mSpan[0].innerHTML="格式正确"

        }else{
            flagName=false;
            mSpan[0].innerHTML="错误"
        }
    }
    mText[1].onblur=function(){
        var reg=/^.{6,}$/;
        if(reg.test(this.value)){
            flagPas=true;
            mSpan[1].innerHTML="格式正确"

        }else{
            flagPas=false;
            mSpan[1].innerHTML="错误"
        }
    }
    mF.onsubmit=function(){
      if(flagName&&flagPas){
        return true;
    }else{
        return false;
    }
      }
       

</script>

六、正则相关的方法

test

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

参数:test(目标字符串)

返回值:布尔值

exec

功能:判断目标字符串是否满足正则对象格式,将满足格式的子串返回至一个长度为1的数组

参数:exec(目标字符串)

返回值:满足条件的子串

g修饰符  golble全局

var reg=/^\d+$/g;

var str="123a456b789"

console.log(reg.exec(str)[0]);

console.log(reg.exec(str)[0]);

console.log(reg.exec(str)[0]);

第一次取出123,第二次456,第三次789;不加g只能取到123

字符串相关方法:将正则作为参数

search

功能:返回匹配的子串的首位之下标

参数:search(正则对象)

返回值:找到返回下标,找不到返回-1;

i修饰符:忽略大小写

var str="HellowWorld"

var reg=/wor/i;

console.log(str.search(reg));

match:

功能:根据正则对象格式,返回匹配子串,存入数组

参数:match(正则对象)

返回值:数组

var reg=/\d+/g;

var str="123a456b789";

console.log(str.match(reg));

repalce

返回根据正则表达式进行文字替换后的字符串的复制

stringObj.replace(regExp,replaceText)

var str="111 ge bi zhu zhe 111"

str=str.replacr(/111/g,"老王");

console.log(str);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值