js正则

2019-08-25  本文已影响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)

用途

  1. 使表达式作用于整个元素
/(?:abc){2}/.test('abc') // false
/(?:abc){2}/.test('abcabc') // true
  1. 提升性能

先行断言 x(?=y)

/\S+(?=ing)/.test('running') // true
/\S+(?=ing)/.test('runn ing') // false

后行断言 (?<=y)x

/(?<=is)\S+/.test('isLoading') // true
/(?<=is)\S+/.test('is Loading') // false

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

/runn(?!ing)/.test('running') // false
/runn(?!ing)/.test('runn ing') // true

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

/(?<!is)Loaded/.test('isLoaded') // false
/(?<!is)Loaded/.test('is Loaded') // true

这些等等

上一篇 下一篇

猜你喜欢

热点阅读