freeCodeCamp/curriculum/challenges/chinese/02-javascript-algorithms-an.../regular-expressions/specify-only-the-lower-numb...

94 lines
2.0 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

---
id: 587d7db9367417b2b2512ba6
title: 只指定匹配的下限
challengeType: 1
forumTopicId: 301366
dashedName: specify-only-the-lower-number-of-matches
---
# --description--
可以使用带有花括号的数量说明符来指定匹配模式的上下限。 但有时候只想指定匹配模式的下限而不需要指定上限。
为此,在第一个数字后面跟一个逗号即可。
例如,要匹配至少出现 `3` 次字母 `a` 的字符串 `hah`,正则表达式应该是 `/ha{3,}h/`
```js
let A4 = "haaaah";
let A2 = "haah";
let A100 = "h" + "a".repeat(100) + "h";
let multipleA = /ha{3,}h/;
multipleA.test(A4);
multipleA.test(A2);
multipleA.test(A100);
```
按顺序排列,三次 `test` 调用将返回值 `true``false` 和 `true`
# --instructions--
修改正则表达式 `haRegex`,匹配包含四个或更多字母 `z` 的单词 `Hazzah`
# --hints--
你的正则表达式应该使用花括号。
```js
assert(haRegex.source.match(/{.*?}/).length > 0);
```
你的正则表达式不应匹配字符串 `Hazzah`
```js
assert(!haRegex.test('Hazzah'));
```
你的正则表达式不应匹配字符串 `Hazzzah`
```js
assert(!haRegex.test('Hazzzah'));
```
你的正则表达式应该匹配字符串 `Hazzzzah`
```js
assert('Hazzzzah'.match(haRegex)[0].length === 8);
```
你的正则表达式应该匹配字符串 `Hazzzzzah`
```js
assert('Hazzzzzah'.match(haRegex)[0].length === 9);
```
你的正则表达式应该匹配字符串 `Hazzzzzzah`
```js
assert('Hazzzzzzah'.match(haRegex)[0].length === 10);
```
你的正则表达式应该匹配包含 30 个字母 `z``Hazzah`
```js
assert('Hazzzzzzzzzzzzzzzzzzzzzzzzzzzzzzah'.match(haRegex)[0].length === 34);
```
# --seed--
## --seed-contents--
```js
let haStr = "Hazzzzah";
let haRegex = /change/; // Change this line
let result = haRegex.test(haStr);
```
# --solutions--
```js
let haStr = "Hazzzzah";
let haRegex = /Haz{4,}ah/; // Change this line
let result = haRegex.test(haStr);
```