js正则

作者: 孙新强 | 来源:发表于2019-08-25 12:24 被阅读0次

高级概念

捕获匹配

获取引用 (x)

  1. RegExp.$number
/a(bc)/g.exec('abc')
RegExp.$1 // bc

/a(bcd)/g.test('abcd')
RegExp.$1 // bcd

  1. replace $number
'<div class="123">'.replace(/(<div)[\s\S]*(>)/, '$1$2') // <div>

非捕获匹配 (?:x)

  • 匹配 'x' 但是不记住匹配项

用途

  1. 使表达式作用于整个元素
/(?:abc){2}/.test('abc') // false
/(?:abc){2}/.test('abcabc') // true
  1. 提升性能
  • 捕获是消耗性能的 如果不需要记住匹配项 只想单纯括起来 不要用捕获

先行断言 x(?=y)

  • 匹配'x'仅仅当'x'后面跟着'y'.
/\S+(?=ing)/.test('running') // true
/\S+(?=ing)/.test('runn ing') // false

后行断言 (?<=y)x

  • 匹配'x'仅仅当'x'前面是'y'.
/(?<=is)\S+/.test('isLoading') // true
/(?<=is)\S+/.test('is Loading') // false

正向否定查找 x(?!y)

  • 仅仅当'x'后面不跟着'y'时匹配'x'
/runn(?!ing)/.test('running') // false
/runn(?!ing)/.test('runn ing') // true

反向否定查找 (?<!y)x

  • 仅仅当'x'前面不是'y'时匹配'x'
/(?<!is)Loaded/.test('isLoaded') // false
/(?<!is)Loaded/.test('is Loaded') // true

这些等等

  • 正向肯定零宽断言
  • 正向否定零宽断言
  • 零宽断言
    • 零宽断言的意思是(匹配宽度为零,满足一定的条件/断言
    • 零宽断言用于查找在某些内容(但并不包括这些内容)之前或之后的东西

相关文章

  • 正则初解

    title: js验证常用正则表达式date: 2017-03-03 验证 正则表达式 本文介绍js验证常用的正则...

  • JS正则表达式

    JS正则表达式一条龙讲解,从原理和语法到JS正则、ES6正则扩展,最后再到正则实践思路 Stinson 关注 20...

  • 正则详解--程序员必备

    转自: JS正则表达式一条龙讲解,从原理和语法到JS正则、ES6正则扩展,最后再到正则实践思路 温馨提示:文章很长...

  • 前端学习资源整合(二)

    正则 正则 地址JS正则表达式元字符 http://segmentfault.com/a/119000000247...

  • JS基础

    JS基础 JS运算 JS代码块 JS对象 原型对象 GC 正则表达式

  • js 正则表达式

    js 正则表达式

  • JavaScript基础 JavaScript正则表达式

    JS正则表达式:

  • JS正则表达式

    js正则表达式 https://segmentfault.com/a/1190000002471140 正则表达式...

  • JS正则表达式

    @(javascript)[js正则表达式] [toc] JS正则表达式 正则表达式一直是一个令人头疼但却又是十分...

  • 火星文RegExp

    正则基本不陌生 JS中通过RegExp来创建 正则在JS中非常的成熟 创建 可以使用perl的语法var exp...

网友评论

      本文标题:js正则

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