docs: fix typos

This commit is contained in:
Chen Fengyuan
2019-01-23 15:06:56 +08:00
parent 46981f6b9a
commit 7d266f0ce7
14 changed files with 32 additions and 36 deletions
+3 -4
View File
@@ -307,7 +307,7 @@ ES6 为正则表达式新增了`flags`属性,会返回正则表达式的修饰
正则表达式中,点(`.`)是一个特殊字符,代表任意的单个字符,但是有两个例外。一个是四个字节的 UTF-16 字符,这个可以用`u`修饰符解决;另一个是行终止符(line terminator character)。
所谓行终止符,就是该字符表示一行的终结。以下四个字符属于行终止符
所谓行终止符,就是该字符表示一行的终结。以下四个字符属于行终止符
- U+000A 换行符(`\n`
- U+000D 回车符(`\r`
@@ -352,14 +352,14 @@ re.flags // 's'
JavaScript 语言的正则表达式,只支持先行断言(lookahead)和先行否定断言(negative lookahead),不支持后行断言(lookbehind)和后行否定断言(negative lookbehind)。ES2018 引入[后行断言](https://github.com/tc39/proposal-regexp-lookbehind)V8 引擎 4.9 版(Chrome 62)已经支持。
“先行断言”指的是,`x`只有在`y`前面才匹配,必须写成`/x(?=y)/`。比如,只匹配百分号之前的数字,要写成`/\d+(?=%)/`先行否定断言指的是,`x`只有不在`y`前面才匹配,必须写成`/x(?!y)/`。比如,只匹配不在百分号之前的数字,要写成`/\d+(?!%)/`
“先行断言”指的是,`x`只有在`y`前面才匹配,必须写成`/x(?=y)/`。比如,只匹配百分号之前的数字,要写成`/\d+(?=%)/`先行否定断言指的是,`x`只有不在`y`前面才匹配,必须写成`/x(?!y)/`。比如,只匹配不在百分号之前的数字,要写成`/\d+(?!%)/`
```javascript
/\d+(?=%)/.exec('100% of US presidents have been male') // ["100"]
/\d+(?!%)/.exec('thats all 44 of them') // ["44"]
```
上面两个字符串,如果互换正则表达式,就不会得到相同结果。另外,还可以看到,先行断言括号之中的部分(`(?=%)`),是不计入返回结果的。
上面两个字符串,如果互换正则表达式,就不会得到相同结果。另外,还可以看到,先行断言括号之中的部分(`(?=%)`),是不计入返回结果的。
“后行断言”正好与“先行断言”相反,`x`只有在`y`后面才匹配,必须写成`/(?<=y)x/`。比如,只匹配美元符号之后的数字,要写成`/(?<=\$)\d+/`。“后行否定断言”则与“先行否定断言”相反,`x`只有不在`y`后面才匹配,必须写成`/(?<!y)x/`。比如,只匹配不在美元符号后面的数字,要写成`/(?<!\$)\d+/`
@@ -634,4 +634,3 @@ for (const match of string.matchAll(regex)) {
// 转为数组方法二
Array.from(string.matchAll(regex));
```