Javascript - 我所不知道的东西

167 阅读1分钟

三人行,必有我师

这里记录一些我所不知道,或者刚刚学到的东西.

参考目录:

正则 \b 与 \B

  • \b 单词边界
  • \B 非单词边界 例如
/\ba/.test('a') === true
/\ba/.test('c a') === true
...
\B则相反

正则(?:xxx) (?=xxx) (?!xxx) (?<=xxx) (?!<=xxx)

  • (?:xxx) 表示非捕获分组,和捕获分组唯一的区别在于,非捕获分组匹配的值不会保存起来

  • (?=xxx) 正向肯定预查(look ahead positive assert),匹配pattern前面的位置。这是一个非获取匹配,也就是说,该匹配不需要获取供以后使用。

  • (?!xxx) 正向否定预查(negative assert),在任何不匹配pattern的字符串开始处匹配查找字符串。这是一个非获取匹配,也就是说,该匹配不需要获取供以后使用。

  • (?<=pattern) 反向(look behind)肯定预查,与正向肯定预查类似,只是方向相反。

    简单说,以(?<=pattern)xxx为例,就是捕获以pattern开头的内容xxx。

  • (?!<=pattern) 简单说,以(?<!pattern)xxx为例,就是捕获不以pattern开头的内容xxx。