Skip to content

Commit a0c47d5

Browse files
committed
docs(regex): edit d 修饰符
1 parent aab3314 commit a0c47d5

File tree

1 file changed

+8
-8
lines changed

1 file changed

+8
-8
lines changed

docs/regex.md

+8-8
Original file line numberDiff line numberDiff line change
@@ -478,7 +478,7 @@ const regexArrows = /^\p{Block=Arrows}+$/u;
478478
regexArrows.test('←↑→↓↔↕↖↗↘↙⇏⇐⇑⇒⇓⇔⇕⇖⇗⇘⇙⇧⇩') // true
479479
```
480480

481-
## v 修饰符Unicode 属性类的运算
481+
## v 修饰符Unicode 属性类的运算
482482

483483
有时,需要向某个 Unicode 属性类添加或减少字符,即需要对属性类进行运算。现在有一个[提案](https://github.com/tc39/proposal-regexp-v-flag),增加了 Unicode 属性类的运算功能。
484484

@@ -629,11 +629,11 @@ RE_TWICE.test('abc!abc!abc') // true
629629
RE_TWICE.test('abc!abc!ab') // false
630630
```
631631

632-
## 正则匹配索引
632+
## d 修饰符:正则匹配索引
633633

634-
正则匹配的结果,在原始字符串里面的开始位置和结束位置,目前获取并不是很方便。正则实例的`exec()`方法的返回结果,现有一个`index`属性,可以获取整个匹配结果的开始位置。但是,组匹配的每个组的开始位置,很难拿到。
634+
组匹配的结果,在原始字符串里面的开始位置和结束位置,目前获取并不是很方便。正则实例的`exec()`方法有一个`index`属性,可以获取整个匹配结果的开始位置。但是,组匹配的每个组的开始位置,很难拿到。
635635

636-
[ES2022](https://github.com/tc39/proposal-regexp-match-Indices) 中新增`d`修饰符,使用`/d`修饰符,为`exec()``match()`等方法的返回结果加上`indices`属性,在这个属性上面可以拿到匹配的开始位置和结束位置
636+
[ES2022](https://github.com/tc39/proposal-regexp-match-Indices) 新增了`d`修饰符,这个修饰符可以让`exec()``match()`的返回结果添加`indices`属性,在该属性上面可以拿到匹配的开始位置和结束位置
637637

638638
```javascript
639639
const text = 'zabbcdef';
@@ -644,7 +644,7 @@ result.index // 1
644644
result.indices // [ [1, 3] ]
645645
```
646646

647-
上面例子中`exec()`方法的返回结果`result`,它的`index`属性是整个匹配结果(`ab`)的开始位置,现在新增了一个`indices`属性。它是一个数组,每个成员还是一个数组,包含了匹配结果在原始字符串的开始位置和结束位置。由于上例的正则表达式没有组匹配,所以`indices`数组只有一个成员,表示整个匹配的开始位置是`1`,结束位置是`3`
647+
上面示例中`exec()`方法的返回结果`result`,它的`index`属性是整个匹配结果(`ab`)的开始位置。由于正则表达式`re``d`修饰符,`result`现在就会多出一个`indices`属性。该属性是一个数组,它的每个成员还是一个数组,包含了匹配结果在原始字符串的开始位置和结束位置。由于上例的正则表达式`re`没有包含组匹配,所以`indices`数组只有一个成员,表示整个匹配的开始位置是`1`,结束位置是`3`
648648

649649
注意,开始位置包含在匹配结果之中,相当于匹配结果的第一个字符的位置。但是,结束位置不包含在匹配结果之中,是匹配结果的下一个字符。比如,上例匹配结果的最后一个字符`b`的位置,是原始字符串的2号位,那么结束位置`3`就是下一个字符的位置。
650650

@@ -658,7 +658,7 @@ const result = re.exec(text);
658658
result.indices // [ [ 1, 6 ], [ 4, 6 ] ]
659659
```
660660

661-
上面例子中,正则表达式包含一个组匹配`(cd)`,那么`indices`属性数组就有两个成员,第一个成员是整个匹配结果(`abbcd`)的开始位置和结束位置,第二个成员是组匹配(`cd`)的开始位置和结束位置。
661+
上面例子中,正则表达式`re`包含一个组匹配`(cd)`,那么`indices`属性数组就有两个成员,第一个成员是整个匹配结果(`abbcd`)的开始位置和结束位置,第二个成员是组匹配(`cd`)的开始位置和结束位置。
662662

663663
下面是多个组匹配的例子。
664664

@@ -670,7 +670,7 @@ const result = re.exec(text);
670670
result.indices // [ [1, 8], [4, 8], [6, 8] ]
671671
```
672672

673-
上面例子中,正则表达式包含两个组匹配,所以`indices`属性数组就有三个成员。
673+
上面例子中,正则表达式`re`包含两个组匹配,所以`indices`属性数组就有三个成员。
674674

675675
如果正则表达式包含具名组匹配,`indices`属性数组还会有一个`groups`属性。该属性是一个对象,可以从该对象获取具名组匹配的开始位置和结束位置。
676676

@@ -695,7 +695,7 @@ result.indices[1] // undefined
695695
result.indices.groups['Z'] // undefined
696696
```
697697

698-
上面例子中,由于组匹配不成功,所以`indices`属性数组和`indices.groups`属性对象对应的组匹配成员都是`undefined`
698+
上面例子中,由于组匹配`ce`不成功,所以`indices`属性数组和`indices.groups`属性对象对应的组匹配成员`Z`都是`undefined`
699699

700700
## String.prototype.matchAll()
701701

0 commit comments

Comments
 (0)