Skip to content

Commit b57f2eb

Browse files
committed
feat: update translation
1 parent 60946b2 commit b57f2eb

File tree

5 files changed

+73
-64
lines changed

5 files changed

+73
-64
lines changed
Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11

2-
Solution:
2+
答案:
33

44
```js run
5-
let reg = /\.{3,}/g;
6-
alert( "Hello!... How goes?.....".match(reg) ); // ..., .....
5+
let regexp = /\.{3,}/g;
6+
alert( "Hello!... How goes?.....".match(regexp) ); // ..., .....
77
```
88

9-
需要注意的是,点号(.)是一个特殊字符,因此我们需要将其转义并作为 `\.` 插入语句
9+
请注意,点(.)是一个特殊字符,所以我们必须对其进行转义,即将其插入为 `\.`

9-regular-expressions/09-regexp-quantifiers/1-find-text-manydots/task.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,6 @@ importance: 5
99
例如:
1010

1111
```js
12-
let reg = /你的正则表达式/g;
13-
alert( "Hello!... How goes?.....".match(reg) ); // ..., .....
12+
let regexp = /你的正则表达式/g;
13+
alert( "Hello!... How goes?.....".match(regexp) ); // ..., .....
1414
```
Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,17 @@
1-
我们需要寻找 `#` 字符,后跟六个十六进制字符
1+
我们需要寻找首个字符是 `#`,后面紧接着的是六位的十六进制字符的匹配项
22

3-
一个十六进制字符可以被描述为 `pattern:[0-9a-fA-F]`如果我们使用 `i` 标识,那么只需要 `pattern:[0-9a-f]`
3+
一个十六进制字符可以描述为 `pattern:[0-9a-fA-F]`如果我们使用修饰符 `i`,那么只需要 `pattern:[0-9a-f]`
44

5-
然后我们可以用量词 `pattern:{6}` 来查找这六个
5+
然后我们可以使用量词 `pattern:{6}` 来查找其 6 个字符
66

7-
因此,我们得到正则表达式:`pattern:/#[a-f0-9]{6}/gi`
7+
那么,我们得到正则表达式:`pattern:/#[a-f0-9]{6}/gi`
88

99
```js run
10-
let reg = /#[a-f0-9]{6}/gi;
10+
let regexp = /#[a-f0-9]{6}/gi;
1111

1212
let str = "color:#121212; background-color:#AA00ef bad-colors:f#fddee #fd2"
1313

14-
alert( str.match(reg) ); // #121212,#AA00ef
14+
alert( str.match(regexp) ); // #121212,#AA00ef
1515
```
1616

1717
问题是其从更长的序列中匹配了颜色值:
@@ -23,9 +23,9 @@ alert( "#12345678".match( /#[a-f0-9]{6}/gi ) ) // #123456
2323
为了解决这个问题,我们可以在末尾加上 `pattern:\b`
2424

2525
```js run
26-
// color
26+
// 颜色值
2727
alert( "#123456".match( /#[a-f0-9]{6}\b/gi ) ); // #123456
2828

29-
// not a color
29+
// 不是颜色值
3030
alert( "#12345678".match( /#[a-f0-9]{6}\b/gi ) ); // null
3131
```
Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,15 @@
11
# 针对 HTML 颜色的正则表达式
22

3-
创建一个正则表达式来搜寻格式为 `#ABCDEF` 的 HTML 颜色值:首个字符 `#` 以及接下来的六位十六进制字符
3+
创建一个正则表达式来查找格式为 `#ABCDEF` 的 HTML 颜色值:首个字符是 `#`,后面紧接着的是六位的十六进制字符
44

5-
一个例子
5+
用例
66

77
```js
8-
let reg = /...你的正则表达式.../
8+
let regexp = /...你的正则表达式.../
99

1010
let str = "color:#121212; background-color:#AA00ef bad-colors:f#fddee #fd2 #12345678";
1111

12-
alert( str.match(reg) ) // #121212,#AA00ef
12+
alert( str.match(regexp) ) // #121212,#AA00ef
1313
```
1414

15-
P.S. 在这个任务中,我们不需要其他的颜色格式,比如 `#123``rgb(1,2,3)` 等。
15+
P.S. 在这个任务中,我们不需要其他的颜色格式,例如 `#123``rgb(1,2,3)` 等。
Lines changed: 54 additions & 45 deletions
Original file line numberDiff line numberDiff line change
@@ -1,40 +1,46 @@
1-
# 量词 `+,*,?``{n}`
1+
# 量词 +, *, ? 和 {n}
22

3-
假设我们有一个字符串 `+7(903)-123-45-67`,并且想要找到它包含的所有数字。但与之前不同的是,我们对单个数字不感兴趣,只对全数感兴趣:`7, 903, 123, 45, 67`
3+
假设我们有一个像这样 `+7(903)-123-45-67` 的字符串,并想要找到其中所有数字。但与之前不同的是,我们对单个数字不感兴趣,只对全数感兴趣:`7, 903, 123, 45, 67`
44

5-
数字是一个或多个 `\d` 的序列。用来形容我们所需要的数量的词被称为**量词**
5+
数字是一个或多个数字 `pattern:\d` 的序列。为了标记我们需要的数量,我们需要加一个 **量词**
66

77
## 数量 {n}
88

9-
最明显的量词便是一对引号间的数字`pattern:{n}`。在一个字符(或一个字符类等等)后跟着一个量词,用来指出我们具体需要的数量
9+
最简单的量词便是大括号中的数字`pattern:{n}`
1010

11-
它有更高级的格式,用一个例子来说明:
11+
在一个字符(或一个字符类,或 `[...]` 等)后附加一个量词,用来指出我们具体需要的数量。
1212

13-
确切的位数:`{5}`
14-
: `pattern:\d{5}` 表示 5 位的数字,如同 `pattern:\d\d\d\d\d`
13+
它有一些高级的形式,让我们看一些例子:
1514

16-
接下来的例子将会查找一个五位数的数字:
15+
确切的位数:`pattern:{5}`
16+
: `pattern:\d{5}` 表示 5 位数,与 `pattern:\d\d\d\d\d` 相同。
17+
18+
下面这个例子查找一个五位数的数字:
1719

1820
```js run
1921
alert( "I'm 12345 years old".match(/\d{5}/) ); // "12345"
2022
```
2123

22-
我们可以添加 `\b` 来排除更多位数的数字:`pattern:\b\d{5}\b`。
24+
我们可以添加 `\b` 来排除位数更多的数字:`pattern:\b\d{5}\b`。
2325

24-
某个范围的位数:`{3,5}`
25-
: 我们可以将限制范围的数字放入括号中,来查找位数为 3 至 5 位的数字:`pattern:\d{3,5}`
26+
范围:`pattern:{3,5}`,匹配 3-5 个
27+
: 要查找 3-5 位的数字,我们可以将限制写在花括号中`pattern:\d{3,5}`
2628

2729
```js run
2830
alert( "I'm not 12, but 1234 years old".match(/\d{3,5}/) ); // "1234"
2931
```
3032

31-
我们可以省略上限。那么正则表达式 `pattern:\d{3,}` 就会查找位数大于或等于 3 的数字:
33+
我们可以省略上限。
34+
35+
那么正则表达式 `pattern:\d{3,}` 就会查找位数大于等于 `3` 的数字:
3236

3337
```js run
3438
alert( "I'm not 12, but 345678 years old".match(/\d{3,}/) ); // "345678"
3539
```
3640

37-
对于字符串 `+7(903)-123-45-67` 来说,我们如果需要一个或多个连续的数字,就使用 `pattern:\d{1,}`
41+
让我们回到字符串 `+7(903)-123-45-67`
42+
43+
我们如果需要一个及以上的数字,就使用 `pattern:\d{1,}`
3844

3945
```js run
4046
let str = "+7(903)-123-45-67";
@@ -46,10 +52,10 @@ alert(numbers); // 7,903,123,45,67
4652

4753
## 缩写
4854

49-
大多数常用的量词都可以有缩写
55+
大多数常用的量词都有简写形式
5056

51-
`+`
52-
: 代表“一个或多个”,相当于 `{1,}`
57+
`pattern:+`
58+
: 代表“一个或多个”,`pattern:{1,}` 相同
5359

5460
例如,`pattern:\d+` 用来查找所有数字:
5561

@@ -59,75 +65,78 @@ alert(numbers); // 7,903,123,45,67
5965
alert( str.match(/\d+/g) ); // 7,903,123,45,67
6066
```
6167

62-
`?`
63-
: 代表“零个或一个”,相当于 `{0,1}`。换句话说,它使得符号变得可选。
68+
`pattern:?`
69+
: 代表“零个或一个”,`pattern:{0,1}` 相同。换句话说,它使得符号变得可选。
6470

6571
例如,模式 `pattern:ou?r` 查找 `match:o`,后跟零个或一个 `match:u`,然后是 `match:r`。
6672

67-
所以他能够在 `subject:color` 中找到 `match:or`,以及在 `subject:colour` 中找到 `match:our`:
73+
所以 `pattern:colou?r` 会找到 `match:color` 和 `match:colour`:
6874

6975
```js run
7076
let str = "Should I write color or colour?";
7177

7278
alert( str.match(/colou?r/g) ); // color, colour
7379
```
7480

75-
`*`
76-
: 代表着“零个或多个”,相当于 `{0,}`。也就是说,这个字符可以多次出现或不出现
81+
`pattern:*`
82+
: 代表“零个及以上”,与 `{0,}` 相同。也就是说,字符可以出现任何次数或者不出现
7783

78-
接下来的例子将要寻找一个后跟任意数量的 0 的数字:
84+
例如,`pattern:\d0*` 查找一个数字后面跟着任意数量的零(可能有很多或没有)的数字:
7985

8086
```js run
8187
alert( "100 10 1".match(/\d0*/g) ); // 100, 10, 1
8288
```
8389

84-
将它与 `'+'`(一个或多个)作比较
90+
将其与 `pattern:+`(一个或更多)做比较
8591

8692
```js run
8793
alert( "100 10 1".match(/\d0+/g) ); // 100, 10
94+
// 1 没有被匹配出来,因为 0+ 要求至少有一个 0
8895
```
8996

9097
## 更多示例
9198

92-
量词是经常被使用的。它们是构成复杂的正则表达式的主要模块之一,我们接着来看更多的例子
99+
量词是很常用的。它们是构成复杂正则表达式的主要“模块”,所以让我们看更多示例
93100

94-
正则表达式“浮点数”(带浮点的数字):`pattern:\d+\.\d+`
95-
: 实现:
96-
```js run
97-
alert( "0 1 12.345 7890".match(/\d+\.\d+/g) ); // 12.345
98-
```
101+
小数的正则表达式(带浮点的数字):`pattern:\d+\.\d+`
102+
103+
实现:
104+
```js run
105+
alert( "0 1 12.345 7890".match(/\d+\.\d+/g) ); // 12.345
106+
```
99107

100-
正则表达式“打开没有属性的 HTML 标记”,比如 `<span>``<p>``pattern:/<[a-z]+>/i`
101-
: 实现:
108+
”没有特性(attribute)的打开的 HTML 标签(例如 `<span>``<p>`)“的正则表达式。
109+
110+
1. 最简单的:`pattern:/<[a-z]+>/i`
102111

103112
```js run
104113
alert( "<body> ... </body>".match(/<[a-z]+>/gi) ); // <body>
105114
```
106115

107-
我们查找字符 `pattern:'<'` 后跟一个或多个英文字母,然后是 `pattern:'>'`。
116+
正则表达式查找的匹配项是字符 `pattern:'<'` 后跟一个或多个拉丁字母,然后是 `pattern:'>'`
117+
118+
2. 进阶版:`pattern:/<[a-z][a-z0-9]*>/i`
108119

109-
正则表达式“打开没有属性的HTML标记”(改进版):`pattern:/<[a-z][a-z0-9]*>/i`
110-
: 更好的表达式:根据标准,HTML 标记名称可以在除了第一个位置以外的任意一个位置有一个数字,比如 `<h1>`
120+
根据标准,HTML 标签名称可以在除了第一个位置之外的任何位置有一个数字,例如 `<h1>`
111121

112122
```js run
113123
alert( "<h1>Hi!</h1>".match(/<[a-z][a-z0-9]*>/gi) ); // <h1>
114124
```
115125

116-
正则表达式“打开没有属性的HTML标记”:`pattern:/<\/?[a-z][a-z0-9]*>/i`
117-
: 我们在标记前加上了一个可选的斜杆 `pattern:/?`。必须用一个反斜杠来转义它,否则 JavaScript 就会认为它是这个模式的结束符。
126+
**“打开或关闭的不带特性的 HTML 标签”的正则表达式:`pattern:/<\/?[a-z][a-z0-9]*>/i`**
118127

119-
```js run
120-
alert( "<h1>Hi!</h1>".match(/<\/?[a-z][a-z0-9]*>/gi) ); // <h1>, </h1>
121-
```
128+
我们在模式开头附近添加了一个可选的斜杠 `pattern:/?`。必须用一个反斜杠转义它,否则 JavaScript 会认为它是这个模式的结束符。
122129

123-
```smart header="更精确意味着更复杂"
124-
我们能够从这些例子中看到一个共同的规则:正则表达式越精确 —— 它就越长且越复杂。
130+
```js run
131+
alert( "<h1>Hi!</h1>".match(/<\/?[a-z][a-z0-9]*>/gi) ); // <h1>, </h1>
132+
```
125133

126-
例如,HTML 标记能用一个简单的正则表达式:`pattern:<\w+>`。
134+
```smart header="为了使正则表达式更精确,我们通常需要使其更复杂"
135+
我们能够从这些例子中看到一个共同的规则:正则表达式越精确 —— 它就越长越复杂。
127136
128-
因为 `pattern:\w` 代表任意英文字母或数字或 `'_'`,这个正则表达式也能够匹配非标注的内容,比如 `match:<_>`。但它要比 `pattern:<[a-z][a-z0-9]*>` 简单很多。
137+
例如,对于 HTML 标签,我们可以使用更简单的正则表达式:`pattern:<\w+>`。但是由于 HTML 对标签名称有更严格的限制,所以 `pattern:<[a-z][a-z0-9]*>` 更可靠
129138
130-
我们能够接受 `pattern:<\w+>` 或者我们需要 `pattern:<[a-z][a-z0-9]*>`?
139+
我们可以使用 `pattern:<\w+>` 还是需要 `pattern:<[a-z][a-z0-9]*>`
131140
132-
在现实生活中,两种方式都能接受。取决于我们对于“额外”匹配的宽容程度以及是否难以通过其他方式来过滤掉它们
141+
在实际开发中,这两种变体都是可以接受的。具体用哪个取决于我们对于“额外”匹配的宽容程度,以及通过其他方式将它们从结果中删除的困难程度
133142
```

0 commit comments

Comments
 (0)