vue源码

正则篇

2018-03-01  本文已影响0人  kakaka0234

commit <first commit> ~ 5acc8a29

背景

先放一段尤大一段正则在这里。不知各位看官能否看的明白。

var KEY_RE          = /^[^\|<]+/,
    ARG_RE          = /([^:]+):(.+)$/,
    FILTERS_RE      = /\|[^\|<]+/g,
    FILTER_TOKEN_RE = /[^\s']+|'[^']+'/g,
    DEPS_RE         = /<[^<\|]+/g,
    NESTING_RE      = /^\^+/

原因

在看指令那一块的代码是尤大写的几个正则总是看不懂。在网上查了一圈也没找到原因。 就是[^\|<]这种正则。但是当时借助其他方式也完成的代码逻辑,就没有去管。

直到有一天终于受不了了。每次看到这一段总感觉如鲠在喉。于是乎又去查了一番。终于找到了答案。

答案

var KEY_RE = /^[^\|<]+/为例,最疑惑的地方就是[^\|<]这种写法。

^ 字符

\|< 字符

综上

如:

var ARG_RE = /^[^\|<]+/
'hello | kaka < haha'.match(ARG_RE)
// result = ["hello ", index: 0, input: "hello | kaka < haha"]

'he_llo:kaka < haha'.match(ARG_RE)
// result = ["he_llo:kaka ", index: 0, input: "he_llo:kaka < haha"]


上一篇 下一篇

猜你喜欢

热点阅读