mirror of
https://github.com/ruanyf/es6tutorial.git
synced 2025-05-24 18:32:22 +00:00
docs(regex): 修改后行断言的文字
This commit is contained in:
parent
74118a5447
commit
c1c4592dda
@ -359,7 +359,7 @@ JavaScript语言的正则表达式,只支持先行断言(lookahead)和先
|
||||
/\d+(?!%)/.exec("that’s all 44 of them") // ["44"]
|
||||
```
|
||||
|
||||
上面两个字符串,如果互换正则表达式,就会匹配失败。另外,还可以看到,正则表达式的括号之中的部分,是不计入返回结果的。
|
||||
上面两个字符串,如果互换正则表达式,就会匹配失败。另外,还可以看到,”先行断言“括号之中的部分(`/(?=%)/`),是不计入返回结果的。
|
||||
|
||||
”后行断言“正好与”先行断言“相反,`x`只有在`y`后面才匹配,必须写成`/(?<=y)x/`。比如,只匹配美元符号之后的数字,要写成`/(?<=\$)\d+/`。”后行否定断言“则与”先行否定断言“相反,`x`只有不在`y`后面才匹配,必须写成`/(?<!y)x/`。比如,只匹配不在美元符号后面的数字,要写成`/(?<!\$)\d+/`。
|
||||
|
||||
@ -368,7 +368,7 @@ JavaScript语言的正则表达式,只支持先行断言(lookahead)和先
|
||||
/(?<!\$)\d+/.exec("it’s is worth about €90") // ["90"]
|
||||
```
|
||||
|
||||
上面的例子中,正则表达式的括号之中的部分,也是不计入返回结果。
|
||||
上面的例子中,”后行断言“的括号之中的部分(`/(?<=\$)/`),也是不计入返回结果。
|
||||
|
||||
”后行断言“的实现,需要先匹配`/(?<=y)x/`的`x`,然后再回到左边,匹配`y`的部分。这种”先右后左“的执行顺序,与所有其他正则操作相反,导致了一些不符合预期的行为。
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user