正则表达式

正则表达式

        1.什么是正则表达式?

           (1)是描述字符串组成语法结构的语法规则

           (2)用于匹配字符串中字符组合的模式

           (3)是一个对象

       

        2.特点:

            (1)非常灵活

            (2)逻辑性非常强

            (3)以非常简单的方式对字符串进行复杂的控制

        3.创建正则表达式

            (1)使用字面量 / /

            var 变量名 = /表达式/

            (2)使用RegExp构造函数

                var 变量名 = RegExp(/表达式/)

                var 变量名 = new RegExp(/表达式/)

        4.正则表达式的使用

            (1)test()方法:返回boolean值。true表示符合正则规则,false表示不符合正则规则

                正则对象.test(被验证的字符串)

            (2)模式修饰符:/表达式/[switch]

                switch:是模式修饰字符,是可选的,通过它可以对正则进一步的设置

               

                g:表示全局匹配

                i:忽略大小写

            (3)边界符:

                ^:表示匹配行首的文本(表示以谁开头)

                $:表示匹配行尾的文本(表示以谁结尾)

           

 

            (4)预定义字符

                (1) . :匹配除了'\n'的单个字符

                (2) \d :表示0~9之间的任意数字。等价于[0-9]\

                (3) \D :表示匹配0~9以外的字符。等价于[^0-9]

                (4) \w :表示匹配任意字母,数字,下划线。等价于[a-zA0-9]

                (5) \W :表示除字母,数字,下划线。等价于[^a-zA0-9]

                (6) \b :单词分界符

                (7) \s :匹配空格(包括换行符,制表符,空格符等),相当于[\t\r\n\v\f]

            match(正则表达式)方法:是String对象的方法,用来截取符合正则表达式规则的子串

            强调:转义字符: '\',若要输出反斜杠,要使用连续两个'\'-->'\\'

 

 

            (5)字符范围示例

               1. [cat]:匹配字符集合中的任意一个字符c,a,t ,包含任意一个则返回值为true,反之为false

               2. [^cat]:匹配除c,a,t以外的字符

               3. [A-Z]:匹配字母A-Z范围的字符

               4. [\u4e00-\u9fa5]:匹配任意一个中文字符

               5. var reg = /^[a-zA-Z0-9_-]$/:如果允许用户输入英文字母(不区分大小写),数字,短横线-,下划线_的正则情况

 

            (6)量词符和括号符:

                1.量词符:

                    (1) ? :匹配?之前的字符零次或一次 。hi?t -->ht hit

                注意:exec(字符串),是正则表达式对象的方法。返回值类型是数组

                    (2) + :匹配+前面的字符一次或多次。

                    bre+ad --> bre...ad

                    (3) * :匹配*前面的字符零次或多次。

                    bre*ad-->

                    (4){n}:匹配{}之前的字符n次.

                    hi{3}t-->hiiit

                    (5){n.}:匹配{}前的字符最少n次.

                    hi{3}t-->hiii...t

                    (6){n,m}:匹配大括号前面的字符n-m次

                2.括号字符:改变限定符的范围

                    (1)改变限定符范围之前:cat|er

                     匹配结果: cat,er

                    (2)改变限定符范围之后:

                    ca(t|er)

                     匹配结果:cat,caer

                    (3)分组:

                     分组前:abc{2}-->表示{}前面的c要出现两次

                     分组后:a(bc){2}-->表示{}前面的bc要出现两次

 

        正则表达式的捕获与非捕获

            1.捕获:使用小括号可以进行分组,当小括号后面有量词符时,就表示对整个组进行操作

           

 

            2.进行字符串的替换:replace结合正则表达式实现、

            3.贪婪匹配:表示匹配尽可能多的字符。是正则表达式的默认匹配方式

            4.懒惰匹配:表示匹配尽可能少的字符。通过'?'来实现

 

        正则表达式的优先级:

            一级: \ 转义字符

            二级: (),[]

            三级:*,+,?,{n},{n,m}

            四级:^,$,\任意元字符,任意字符

           

          结合性 -5*6 --> (-5)*6

身份证的正则和表单的验证

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值