美文网首页
常用正则学习

常用正则学习

作者: 林帅进来了 | 来源:发表于2018-12-05 23:52 被阅读0次

    一、实例化RegExp

    1、字面量
    2、构造函数

    字面量
    var reg = /\bis\b/g;(\b单词边界)
    构成函数
    var reg = new RegExp('\bis\b','g');

    g 全文检索
    i 忽略大小写
    m 多行搜索

    二、元字符

    正则表达式由两种字符类型组成:
    1、原义文本字符
    2、元字符(代表有特殊含义的非字母字符)

      • ? $ ^ . | \ ( ) { } []

    三、字符类

    可以使用元字符[]构建一个简单的类([abc]表示将a或b或c归于一类,表达式可以匹配这类字符)
    字符类取反([^abc])

    四、范围类

    可以使用[a-z]标识a到Z,类内部可以连写[a-zA-Z]

    五、预定义类

    . [^\r\n] 除了回车换行之外的所有字符
    \d [0-9] 数字字符
    \D [^0-9] 非数字字符
    \s 空白符
    \S 非空白符
    \w [a-zA-Z_0-9] 单词字符(数字、字母、下划线)
    \W [^a-zA-Z_0-9] 非单词字符
    ^ 以开始
    $ 以结束
    \b 单词边界
    \B 非单词边界

    六、量词

    ?最多出现一次

    • 至少出现一次
    • 任意次
      {n} 出现n次
      {n,m} 出现n到m次
      {n,} 至少出现n次

    七、贪婪模式

    默认贪婪模式 '12345678'.replace(/\d{3,6}/,'A')==>'A78'
    非贪婪模式 '123456789'.replace(/\d{3,6}?/,'A')==>'AA78'

    八、分组

    小括号()达到分组效果
    'a1b2c3d4'.replace(/([a-z]\d){3}/,'A')==>'Ad4'
    或 |达到效果
    反向引用
    '2016-04-24'.replace(/(\d{4})-(\d{2})-(\d{2})/g,'2/1/$3')
    忽略分组 加?: (?:a)(b)

    九、前瞻

    向前检查是否符合断言
    正向前瞻 exp(?=assert) 'a3fd123'.replace(/a-z/g,'A');==>"a3fA123"
    负向前瞻(取反) exp(?!assert) 'a3fd123'.replace(/a-z/g,'A');==>"a3Ad123"

    十、对象方法

    reg.test('a') 测试传入字符串是否符合正则规则 符合返回true
    reg.exec('a') 不符合返回null,符合返回数组[index,input] index--匹配文本第一个字符的位置 input--存放被检索的字符串

    相关文章

      网友评论

          本文标题:常用正则学习

          本文链接:https://www.haomeiwen.com/subject/qsggcqtx.html