js基础正则。前端必备。纯干货

图片发自App

1. ****正则表达式:

      1. 最简单的正则:关键词原文

      2. 备选字符集:某一位可用的备选字符列表

                  语法:[备选字符列表]

​强调:一个中括号,必须且只能匹配一位。两个中括号,则后面匹配两个

              2.1 连续备选字符: -

[^47]除了4 7

      3. 预定义备选字符集: 对常用字符集的简写

              \d  -->1位数字          [0-9]

              \w -->1位字母,数字或_  [0-9a-zA-Z_]

              \s  -->1位空字符,比如:空格  制表符  换行

              \大写 -->\小写 的反义:

                  比如:\D 表示非\d  除了数字

            ‘.’ -->除了换行和回车后的任意字符

            一个任意字*符:. 一个点

/^[1][3,4,5,8][0-9]{9}$/

        4. 量词:规定相邻的前一个字符集出现的次数,重要

            如何使用:紧跟在一个字符集之后

​​​数值数量:{min,max}(最少,最大) eg:\d{6,8}    -->数字6-8位

                      {min,}(几位以上)

                      {n}(必须n个)    --->\d{6}------>6位数字

            不确定数量:

​          ​​​?: 可有可无,最多1个,比如0086?,问号之修饰6,若想修饰整个0086,需要加个括号。

                    *: 可有可无,数量不限

                    +: 至少1个,多了不限

               

    5. 选择和分组: 选择:或 | 分组: ( ),或在正则中的优先级特别的低

              比如:手机号:

                  +86或0086 

至少一个空字符 \s+

                  地区代码和空字符整体 可有可无,最多1次

                  1

                  在34578中选其一 [34578]

                  9位数字 \d{9}

​​​((\+86|0086)\s+)?1[34578]\d{9}

            身份证号:前15位数字

                      再两位数字

                      一位数字或Xx

                      后三位,整体可有可无,最多1次=********`1*

            \d{15}(\d{2}\d[0-9Xx])?

         

    7. 匹配指定位置:

          ^  匹配开始位置的xxx, eg: ^\s+匹配字符串开头的空字符

          $  匹配结束位置的xxx, eg:\s+$ 匹配字符串结尾的空字符

              匹配开头或结尾的空字符:  ^\s+|\s+$

          前加^后加$,且中间没有|:^xxxx$必须和正则完全匹配

          ***今后:做验证:都要前加^,后加$,即在验证中需要完全匹配。

          \b:表示单词边界:eg:\bno\b,只找单词no  .如果要匹配独立单词,要两边同时加\b.

匹配首字母和结尾字母相同的单词:首字母:\b[a-zA-Z]

                              中间字母:[a-zA-Z]+

                              结尾字母:1\b\

\b 的范围比较广,空格什么的也都算在内。       

      8. 预判:(?):在正式匹配前,先大概预判整个字符串的规则

              多用于排除法 比如:密码强度:8位字母,数字字符,

​​必须包含一个大写和一个数字

            所有字符:4大类:数字,小写字母,大写字母,特殊符号

            1. 排除:不全由数字和小写字母组成:

                    结论:可能包含大写字母或特殊符号 ​(?![0-9a-z]+$)

解读:(?![0-9a-z]+$)  指预判从头到尾是否只有...组成,

“+”如果不加只表示结尾是否只有...组成

            2. 排除:不全由大写字母和小写字母组成:

                    结论:可能包含数字或特殊符号        (?![a-zA-Z]+$)

            3. 只能由字母或数字组成——排除了特殊符号 ​ \w{6,8}

            最终:(?!^[a-zA-Z]+$)(?^[0-9a-z]+$)[0-9a-zA-Z]{8}

                  或者^(?![a-zA-Z]+$)(?[0-9a-z]+$)[0-9a-zA-Z]{8}$

      9:汉字备选字符集:[\u4e00-\u9fa5]  eg:[\u4e00-\u9fa5]{3,5}-->3-5个汉字

你可能感兴趣的:(js基础正则。前端必备。纯干货)