为了账号安全,请及时绑定邮箱和手机立即绑定

JavaScript正则表达式

Samaritan Web前端工程师
难度中级
时长 1小时30分
学习人数
综合评分9.70
346人评价 查看评价
9.9 内容实用
9.6 简洁易懂
9.6 逻辑清晰
  • []范围类用法

    查看全部
    0 采集 收起 来源:范围类

    2020-02-20

  • 反向类取反

    原来/[abc]g/可以匹配a,b,c

    现在/[^abc]g/是匹配a,b,c以外的字符

    查看全部
    0 采集 收起 来源:字符类

    2020-02-20

  • \t    水平制表符(Tab?)

    \v   垂直制表符

    \n   换行符号不解释

    \r    回车符

    \0   空字符

    \f    换页符(frame?)

    \cX 与X对应的控制字符(Ctrl + X)



    查看全部
    0 采集 收起 来源:元字符

    2020-02-20

  • * + ? $ ^ . | \ ( ) { } [ ]
    特殊含义字符,如果需要匹配,需要转义

    查看全部
    0 采集 收起 来源:元字符

    2020-02-20

  • 元字符解释

    查看全部
    0 采集 收起 来源:元字符

    2020-02-20

  • 在JS中,正则表达式被包在两个'/'之间

    可以直接写两个/,中间写出pattern来构造正则表达式对象

    也可以使用构造函数new RegExp(字符串|已有正则表达式对象,模式)来创建

    字符串对象的replace接收两个参数(str|RegExp, 匹配元素)

    在正则表达式最后写上g(/???/g)为全局匹配,否则只匹配模式串中第一个合适的元素

    i为忽略大小写

    m多行搜索

    查看全部
    0 采集 收起 来源:RegExp对象

    2020-02-20

  • 正则表达式有许多的规定,其中特殊字符必须转义,如下表

    \b单词边界 border

    \d数字

    \\ \

    \/ /

    []为区间,即其中的内容任取一个[ab]就是取a或者取b,还可以[a-zA-Z0-9-_]表示可以取大小写字母加上数字和横线下划线

    ()为分组,影响取值的结果,如^\(d{4})[\/-](\d{2})[\/-](\d{2})$

    匹配年月日,其中年为(d{4}),取值为$1,以此类推,日为$3


    查看全部
  • 那必须的啊

    查看全部
  • 忽略分组?:

    查看全部
    0 采集 收起 来源:分组

    2020-02-18

  • 记住string.replace(reg, str)可以匹配正则表达式

    查看全部
    0 采集 收起 来源:RegExp对象

    2019-11-04

  • 推荐一个好用的 正则大全   https://any86.github.io/any-rule/

    查看全部
  • 预定义类一览

    查看全部
  • 实例化

    实例化有两种方式:字面量和构造函数

    1. 字面量:

        var reg = /\bare\b/g;

        var str = ‘my name are fuliping’;

        str.replace(reg,’is’);//my name is fuliping

    1. 构造函数:

        var reg = new RegExp(‘\\bare\b\’, ’g’);//变量1:字符串,变量2:修饰符

        var str = ‘my name are fuliping’;

        str.replace(reg,’is’);//my name is fuliping


    元字符:

    正则表达式有两种基本字符类型:原义文本字符和元字符。

    元字符是在正则表达式中有特殊含义的非字符字符,常用元字符如下:

    1. . 任意字符(any character)

    2. | 或

    3. \ 转义

    4. () 分组

    5. (?:) 忽略分组

    6. {} 构建量词

    7. [] 构建类,类表示符合某些特征的对象,一个泛指,而不是特指某个字符,eg:[a-z]

    8. [^] 反向类,类取反,eg:[^a-z]

    9. [a-z] 范围类,eg:[a-z], [A-Z], [a-zA-Z], [0-9]

    10. \d 数字(digit)

    11. \w 字母(word)

    12. \b 单词边界(boundary)

    13. \B 非单词边界

    14. ^ 以xxx开始(start of line)

    15. $ 以xxx结束(end of line)


    特殊元字符:

    1. \t 水平制表符

    2. \v 垂直制表符

    3. \n 换行符

    4. \r 回车符

    5. \0 空字符

    6. \f 换页符

    7. \cX 于X对应的控制字符(如ctrl + X)


    修饰符(对象属性)

    1. g:global全局搜索,不添加,搜索到第一个匹配停止,默认false

    2. i: ignore case忽略大小写,默认大小写敏感,默认false

    3. m:multiple lines多行搜索,默认false

    4. lastIndex:当前表达式匹配内容的最后一个字符的下一个位置

    5. source:正则表达式的文本字符串


    量词:

    1. ? 表示出现零次或一次(最多出现一次)

    2. + 表示出现一次或多次(至少出现一次)

    3. *  表示出现零次或多次(任意次)

    4. {n} 出现n次

    5. {n, m} 出现n到m次

    6. {n,} 至少出现n次


    贪婪模式:

    默认使用贪婪模式,如果要使用非贪婪模式,量词后加?即可,eg:/{3,6}?/g


    分组():

    通过分组实现反向引用,达到捕获分组内容的目的。

    eg:’2019-08-07’.replace(‘(/\d{4})-(\d{2})-(\d{2})/g’, ’$2/$3/$1’);


    忽略分组(?:***):

    不希望捕获某些分组,只需要在分组内加上?:就可以。


    前瞻:

    前瞻就是在正则表达式匹配到规则的时候,向前检查是否符合断言,后顾/后瞻方向相反。

    ps:正则表达式从文本头部向尾部解析,文本尾部方向,成为“前”。JS不支持后顾。

    符合特定断言称为肯定/正向匹配,不符合称为否定/负向匹配。

    正向前瞻:exp(?=assert)

    负向前瞻:exp(?!assert)

    eg:’a7&04k'.replace(‘/\w(?=\d)/g’, ‘A’);


    正则表达式对象方法:

    1. test():RegExp.prototype.test(str) 用于测试字符串参数中是否存在匹配正则表达式模式的字符串。

            eg:var reg1 = /\w/;

                    var reg2 = /\w/g;

                    while(reg2.test(‘ab’)){

                        console.log(reg2.lastIndex);

                    }

    1. exec(): RegExp.prototype.exec(str) 使用正则表达式模式对字符串执行搜索,并将更新全局RegExp对象的属性以反映匹配结果。如果没有匹配的文本,则返回null,否则返回一个结果数组。

                数组内容:

                index:声明匹配文本的第一个字符的位置

                input:存放被检索的字符串 string

            eg:var reg4 = /\d(\w)(\w)\d/g;

                    var ts = ‘$2ae4be7km9df5yt’;

                    while(ret = reg4.exec(ts)){

                        console.log(reg4.lastIndex);

                        console.log(reg4.index);

                        console.log(ret.toString());

                    }


    字符串对象方法:

    1. search(): String.prototype.search(reg) 用于检索字符串中的指定的字符串,或检索与正则表达式相匹配的子字符串。不执行全局匹配,会忽略g。

    2. match():String.prototype.match(reg) 用于检索字符串,以找到一个或多个与regexp匹配的文本。结果对是否具有g标志影响很大。


    查看全部
  • *.txt  星表示所有字符串


    查看全部
  • 一.实例化
    1.字面量var reg=\/bis/b\g;
    2.构造函数var reg=new RegExp('\\bis\\b',g);

    二.修饰符
    1.    g    :global

    2.    i      :ignore case
    3.    m    :多行,multiple lines

    查看全部
    0 采集 收起 来源:RegExp对象

    2019-04-21

举报

0/150
提交
取消
课程须知
1、对JavaScript 语法了解。 2、熟练使用文本编辑器。
老师告诉你能学到什么?
1、正则表达式基本语法 2、正则表达式分类梳理 3、好用的正则表达式图形化理解工具 4、正则表达式在JavaScript中的应用 5、常见文本批处理办法

微信扫码,参与3人拼团

意见反馈 帮助中心 APP下载
官方微信
友情提示:

您好,此课程属于迁移课程,您已购买该课程,无需重复购买,感谢您对慕课网的支持!