正则基础(一看就会)

【正则】

1.什么是正则

        正则表达式(规则表达式)  regular expression

        正则其实就是描述了一套规则,本质是操作字符串。

2.正则是干什么的?  操作字符串的

        (1)模式匹配 (表单验证)

        (2)文本检索

        (3)替换

3.正则的好处(为什么用它)

        简单,方便

        性能极高

4.字符串方法都有哪些

        substring(开始位置,[结束位置])

        substr(开始位置,个数)

        slice(开始位置,[结束位置])

        charAt(下标)

        indexOf()

        lastIndexOf()

        split()  ---转数组

        toLowerCase()

        toUpperCase()

        replace(把谁,替换成谁)

        trim()  去除收尾空格

5.  正则怎么使用

        (1)  var reg=new RegExp('规则','选项');   通过构造函数创建(好处:可以放变量)

        (2)  var reg=/规则/选项                  通过字面量创建  (不可以放变量)

6. 字符串方法中使用正则的

        (1)  str.search(正则);  搜索符合正则条件的字符串的下标  返回的是数字  没有找到返回-1

        类似indexOf 通过正则找下标

        (2)  str.match(正则)    挑,选出符合正则条件的字符串 返回的是数组  没有返回null

        (3.1)  str.replace(正则,替换成谁)  把符合正则条件的字符串替换成某个字符串

        (3.2)  str.replace(正则,function(s){

                       s  //是符合正则条件的字符串

               })

7.   选项(模式):

        g  global      全局

        i  ignore      不区分大小写

        m  mutil-line  多行

        选项不区分顺序

8.  转译字符(元字符)

        \d    数字  [0-9]

        \s    空格

        \w    单词    [a-zA-Z0-9_]

        \D  非数字  [^0-9]

        \S  非空格

        \W  非单词  [^a-zA-Z0-9_]

        .代表所有,任意字符

        \.  代表的是 .

        \\  代表\

        \\\\  \\

        .\ / ? +  都要前面加 \ 转译

    如:http//

     转后:http\/\/

9. 量词

        {n}  正好n个  \d{3}--->\d\d\d

        {n,m} 最少n个最多m个

        {n,}  最少n个 多了不限

        {,n}  错×  字符串的个数不能出现负数

        {1,}  +  若干个  最少1个多了不限

        {0,1}  ?  可以没有,最多一个

        {0,}  *  可以没有 多了不限

10.1   [ ]

        有或的用法

        /[abc]/    /a|b|c/

        /a[bc]/  /ab|ac/

        /a[bc]d/  /abd|acd/

        /[a|b]/  a b |

10.2  范围的用法

       /[a-z]/  abcde....z

         /[0-9]/  \d

        /[1-38]/  1 2 3 8

10.3.  排除

       /[^0-9]/   表示排除0-9

总结:  [ ]

           1、[]里面的东西都是或的形式

           2、[]里面和放范围

           3、[^]  不代表行首,代表除去里面的范围

           4、其他特殊符号代表本身

11.  修饰符

          |  代表或

          ^  行首    注:如果^单独使用,代表字符串行首,配合m使用会识别段落

          $  行尾

12    ( )

    1.分组()

            a+  aaaaa

            ab+  abbbbb

           (ab)+  abababab

      2 .匹配子级

            配合replace使用  str.replace(reg,function(s,a,b){

                            s是 整体

                            a是第一个括号的项

                            b是第二个括号的项

                    })

      3.优选级   

      4. 重复的子项

           如:abbb       /(a)(b)\2+/    表示第二项重复

         aaaab       /(a)\1+(b)/    表示第一项重复

13. 正则的校验

        强校验

        弱校验

14.正则有校验的方法

(1) 正则.test(字符串)  返回 true false

            test() 一般配合^ &

            功能:用于检测是否于正则匹配。

            返回:布尔值,true匹配,false不匹配

            语法:reg.test(检测的内容)

(2)正则.exec(字符串)

            功能:用于检测是否于正则匹配。

            返回:数组, 不匹配返回null

            语法:reg.test(检测的内容)

15.  例子:

1.  QQ号校验  5-12

            /[1-9]\d{4,11}/

2.  座机号 : 区号-座机号     如:010或1012 0289

           区号 (0[1-9]\d{1,2}-)?

            座机号  [1-9]\d{6,7}

            /^(0[1-9]\d{1,2}-)?[1-9]\d{6,7}$/

3.  手机号

            /1[3-57-9]\d{9}/

4.  中文校验

            [\u4e00-\u9fa5]

            一      龥

\u表示字符编码  4e00 和 9fa5 是十六进制编码

你可能感兴趣的:(正则基础(一看就会))