js笔记10(正则表达式&表单相关事件)

本文详细介绍了正则表达式在JavaScript中的使用,包括创建正则对象、匹配模式、预定义字符集、量词、选择和分组、指定匹配位置以及预判公式。此外,还讲解了正则的API,如切割和替换方法,并通过实例展示了如何验证身份证号和手机号的格式。正则表达式在字符串操作和验证中起着关键作用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、正则表达式

        定义字符串中字符出现规整的表达式;使用:切割、替换、验证。

        1、创建正则对象:

        直接量方式:var reg=/正则表达式/后缀(g(代表全部)i(代表忽略大小写))

        构造函数方式:var reg=new RegExp("正则表达式","后缀")

        2、正则表达式:

        例如替换:(关键字,替换内容),这种方式只能替换原文中的第一个,替换搭配上正则:str.replace(/关键字/ig),则会把原文中该关键字全部替换掉。

        3、备选字符集:/[备选字符集]/;

        它一个中括号只能管一位字符,可以自定义用户输入内容的范围;但是如果第一位符合了,则后续怎么输入都会正确;快捷方法:

                    一位数字:[0-9]
                    一位字母:[A-Za-z]
                    一位字母、数字、下划线:[A-Za-z0-9_]
                    一位汉字:[\u4e00-\u9fa5]

                    除xx之外:[^xx],表示除xx之外其他都可以用

var user=prompt("输入身份证"),
    //该正则表达式表示输入的身份证可以是15位的
    //也可以是17位加一位0到9的数字或者字母Xx的,如果不符合,正则判断flase        
    reg1=/^(\d{15}|\d{17}[0-9xX])$/;
   console.log(reg1.test(user))

        4、预定义字符集:

        前辈们创建好的,简化备选字符集写法

        \d:(一位数字0-9);\w:(一个字符,可以是字母,可以是数字,可以是下划线)

        \s:(一个字符,可以是空格,制表符、换行);\.(一个字符,除了换行都可以)

        5、量词:规定一个字符集出现的次数

        1、有明确数量:字符集{至少n次,最多n次};字符集{至少n次,"空着不写,表示多了不限"}

             字符集{固定必须多少次} 

        2、没有明确数量:字符集?:前边相邻的字符集可有可无,最多一次

                字符集*:前边相邻的字符集,可有可无,无限次

                字符集+:前边相邻的字符集,至少一次,多了不限

 var user=prompt('输入手机号'),
        //表示+86和0086可以出现,但是只能出现1个
        //\s*表示可以出现空格等,多了不限制
        reg1=/^(\+86|0086)?\s*[1][3-9]\d{9}$/;
        console.log(reg1.test(user))

        6、选择和分组:

        选择和分组基本上都是同时出现的选择 |  分组()

        选择:在多个规则中多选一,规则1|规则2|规则3

        分组:(规则1|规则2|规则3)

        7、指定匹配位置:

        ^:开头;$:结尾;两者同时使用就表示从头到尾完全匹配

        8、预判公式:多半出现在验证上面,不能输入某些或某些组合的字符,可以多个

        (?![0-9]+$):不能是纯数字组成

         (?![A-Z]+$) : 不能全由大写字母组成

        (?![0-9a-z]+$) : 不能全由数字组成,不能全由小写组成,也不能全由数字和小写的组合组成

二、正则的API

        1、切割: var new=str.split(切割符或者正则)

        2、替换:var new=str.replace(/关键字/g,新内容)

    var str="17666666666";
     newstr=str.replace(/^(\d{3})(\d{5})(\d{3})$/,function(a,b,c,d,e,g){
        console.log(a)//匹配到的内容,这里全部匹配到,就相当于原文
        console.log(b)//第一个分组的内容
        console.log(c)//第二个分组的内容
        console.log(d)//第三个分组的内容
        console.log(e)//关键字的下标
        console.log(g)//原文
        return b+"****"+d//返回的是第一个分组的内容加*号,加第三个分组的内容
        //就将第二个分组的内容给替换掉了
    })

三、正则的方法

        验证:var bool=reg.test(str); - 得到一个布尔值,然后我们根据布尔值设置不同的样式,不同的样式决定了你能不能提交

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值