2018-10-10 18:03:03 -04:00
|
|
|
---
|
|
|
|
id: 587d7dba367417b2b2512ba8
|
2021-03-14 21:20:39 -06:00
|
|
|
title: 检查全部或无
|
2018-10-10 18:03:03 -04:00
|
|
|
challengeType: 1
|
2020-08-04 15:14:01 +08:00
|
|
|
forumTopicId: 301338
|
2021-01-13 03:31:00 +01:00
|
|
|
dashedName: check-for-all-or-none
|
2018-10-10 18:03:03 -04:00
|
|
|
---
|
|
|
|
|
2020-12-16 00:37:30 -07:00
|
|
|
# --description--
|
|
|
|
|
2021-03-14 21:20:39 -06:00
|
|
|
有时,想要搜寻的匹配模式可能有不确定是否存在的部分。 尽管如此,还是想检查它们。
|
2020-12-16 00:37:30 -07:00
|
|
|
|
2021-03-14 21:20:39 -06:00
|
|
|
为此,可以使用问号 `?` 指定可能存在的元素。 这将检查前面的零个或一个元素。 可以将此符号视为前面的元素是可选的。
|
2020-12-16 00:37:30 -07:00
|
|
|
|
2021-03-14 21:20:39 -06:00
|
|
|
例如,美式英语和英式英语略有不同,可以使用问号来匹配两种拼写。
|
2020-08-04 15:14:01 +08:00
|
|
|
|
|
|
|
```js
|
|
|
|
let american = "color";
|
|
|
|
let british = "colour";
|
|
|
|
let rainbowRegex= /colou?r/;
|
2021-03-14 21:20:39 -06:00
|
|
|
rainbowRegex.test(american);
|
|
|
|
rainbowRegex.test(british);
|
2020-08-04 15:14:01 +08:00
|
|
|
```
|
|
|
|
|
2021-03-14 21:20:39 -06:00
|
|
|
上面的 `test` 都会返回 `true`。
|
|
|
|
|
2020-12-16 00:37:30 -07:00
|
|
|
# --instructions--
|
2018-10-10 18:03:03 -04:00
|
|
|
|
2021-03-14 21:20:39 -06:00
|
|
|
修改正则表达式 `favRegex` 以匹配美式英语(`favorite`)和英式英语(`favourite`)的单词版本。
|
2018-10-10 18:03:03 -04:00
|
|
|
|
2020-12-16 00:37:30 -07:00
|
|
|
# --hints--
|
2018-10-10 18:03:03 -04:00
|
|
|
|
2021-03-14 21:20:39 -06:00
|
|
|
你的正则表达式应该使用可选符号 `?`。
|
2018-10-10 18:03:03 -04:00
|
|
|
|
2020-12-16 00:37:30 -07:00
|
|
|
```js
|
2021-02-06 04:42:36 +00:00
|
|
|
favRegex.lastIndex = 0;
|
2020-12-16 00:37:30 -07:00
|
|
|
assert(favRegex.source.match(/\?/).length > 0);
|
2018-10-10 18:03:03 -04:00
|
|
|
```
|
|
|
|
|
2021-03-14 21:20:39 -06:00
|
|
|
你的正则表达式应该匹配 `favorite`。
|
2018-10-10 18:03:03 -04:00
|
|
|
|
|
|
|
```js
|
2021-02-06 04:42:36 +00:00
|
|
|
favRegex.lastIndex = 0;
|
2020-12-16 00:37:30 -07:00
|
|
|
assert(favRegex.test('favorite'));
|
2018-10-10 18:03:03 -04:00
|
|
|
```
|
|
|
|
|
2021-03-14 21:20:39 -06:00
|
|
|
你的正则表达式应该匹配 `favourite`。
|
2018-10-10 18:03:03 -04:00
|
|
|
|
2020-12-16 00:37:30 -07:00
|
|
|
```js
|
2021-02-06 04:42:36 +00:00
|
|
|
favRegex.lastIndex = 0;
|
2020-12-16 00:37:30 -07:00
|
|
|
assert(favRegex.test('favourite'));
|
|
|
|
```
|
2018-10-10 18:03:03 -04:00
|
|
|
|
2021-03-14 21:20:39 -06:00
|
|
|
你的正则表达式不应该匹配 `fav`。
|
2018-10-10 18:03:03 -04:00
|
|
|
|
|
|
|
```js
|
2021-02-06 04:42:36 +00:00
|
|
|
favRegex.lastIndex = 0;
|
2020-12-16 00:37:30 -07:00
|
|
|
assert(!favRegex.test('fav'));
|
2018-10-10 18:03:03 -04:00
|
|
|
```
|
2020-08-04 15:14:01 +08:00
|
|
|
|
2021-01-13 03:31:00 +01:00
|
|
|
# --seed--
|
|
|
|
|
|
|
|
## --seed-contents--
|
|
|
|
|
|
|
|
```js
|
|
|
|
let favWord = "favorite";
|
|
|
|
let favRegex = /change/; // Change this line
|
|
|
|
let result = favRegex.test(favWord);
|
|
|
|
```
|
|
|
|
|
2020-12-16 00:37:30 -07:00
|
|
|
# --solutions--
|
|
|
|
|
2021-01-13 03:31:00 +01:00
|
|
|
```js
|
|
|
|
let favWord = "favorite";
|
|
|
|
let favRegex = /favou?r/;
|
|
|
|
let result = favRegex.test(favWord);
|
|
|
|
```
|