当前位置:   article > 正文

js的正则表达式_js 正则英文、数字、斜杠/、短横-、下划线

js 正则英文、数字、斜杠/、短横-、下划线

目录

1.  什么是正则表达式

2.   特点:灵活、逻辑性非常强、以非常简单的方式对字符串进行复杂的控制

3.   创建正则表达式

 4.   正则表达式的使用

 5.   贪婪匹配与懒惰匹配

 6.   正则表达式的优先级(优先匹配)


1.  什么是正则表达式

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

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

        (3)是一个对象

2.   特点:灵活、逻辑性非常强、以非常简单的方式对字符串进行复杂的控制

3.   创建正则表达式

        (1)使用字面量:​ var 变量名 = / 表达式 /

        (2)使用RegExp构造函数:var 变量名 = RegExp(/ 表达式 /)

                或

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

 4.   正则表达式的使用

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

  使用语法:

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

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

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

                 g:表示全局匹配                 i:忽略大小写

        (3)边界符:

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

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

        (4)预定义字符:

                         . :除了’\n’之外的任意单个字符

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

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

                         \w:表示匹配任意字母、数字和下划线。等价于[a-zA-Z0-9]

                        \W:除所有字母、数字和下划线以外的字符,相当于[ ^a-zA-Z0-9 ]

                        \b:单词分界符

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

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

            (5)字符范围示例

                        [cat]:匹配字符集合中的任意一个字符c、a、t

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

                       [A-Z]:匹配字母A~Z范围内的字符

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

                     /^[a-zA-Z0-9_-]$/ :  

                        输入英文字母(不区分大小写)、数字、短横线-、下划线_的正则情况。

              (6)量词符

                        ​ {m,n}:表示{}之前的字符可以出现m~n次

​                         {n}:表示{}之前的字符可以出现n次

                        ?:匹配 ?之前的字符零次或一次。例如:hi?t —> ht hit

                        +  :匹配+前面的字符一次或多次。例如:bre+ad ——> bre….ad

                        *  :    匹配 前面的字符零次或多次。例如:bre*ad —->brad 、bre…ad

                        

                (7)   括号字符:改变限定符的范围

                             改变限定符范围之前:catch|er  , 匹配结果:catch、er

                             改变限定符范围之后:cat(ch|er),匹配结果:catch、cater

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

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

          5.   贪婪匹配与懒惰匹配

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

                         2、懒惰匹配:表示匹配尽可能少的字符。通过‘?’来实现 

  1. var str = 'webWEBWebwEb';
  2. var reg1 = /w.*b/gi //贪婪匹配
  3. console.log(reg1.exec(str))
  4. var reg2 = /w.*?b/gi //懒惰匹配,表示只要有一次匹配成功即可,不会继续进行匹配
  5. console.log(reg2.exec(str))

         6.   正则表达式的优先级(优先匹配)

                一级:\ 转义字符   (最高)

​                二级:()、[ ]

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

                四级:^、$、\任何元字符、任何字符

        示例:

        身份证的正则:

                 /^[1-9]\d{5}(19|20)\d{2}((0[1-9])|(1[0-2]))(([0-2][1-9])|10|20|30|31)\d{3}[0-9Xx]$/

        

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/article/detail/56740?site
推荐阅读
相关标签
  

闽ICP备14008679号