* fix/regex-lower-number-of-matches * fix/update-guide * fix/convert-blockquote-to-backticks
80 lines
2.3 KiB
Markdown
80 lines
2.3 KiB
Markdown
---
|
|
id: 587d7db9367417b2b2512ba6
|
|
title: Specify Only the Lower Number of Matches
|
|
challengeType: 1
|
|
---
|
|
|
|
## Description
|
|
<section id='description'>
|
|
You can specify the lower and upper number of patterns with <code>quantity specifiers</code> using curly brackets. Sometimes you only want to specify the lower number of patterns with no upper limit.
|
|
To only specify the lower number of patterns, keep the first number followed by a comma.
|
|
For example, to match only the string <code>"hah"</code> with the letter <code>a</code> appearing at least <code>3</code> times, your regex would be <code>/ha{3,}h/</code>.
|
|
|
|
```js
|
|
let A4 = "haaaah";
|
|
let A2 = "haah";
|
|
let A100 = "h" + "a".repeat(100) + "h";
|
|
let multipleA = /ha{3,}h/;
|
|
multipleA.test(A4); // Returns true
|
|
multipleA.test(A2); // Returns false
|
|
multipleA.test(A100); // Returns true
|
|
```
|
|
|
|
</section>
|
|
|
|
## Instructions
|
|
<section id='instructions'>
|
|
Change the regex <code>haRegex</code> to match the word <code>"Hazzah"</code> only when it has four or more letter <code>z</code>'s.
|
|
</section>
|
|
|
|
## Tests
|
|
<section id='tests'>
|
|
|
|
```yml
|
|
tests:
|
|
- text: Your regex should use curly brackets.
|
|
testString: assert(haRegex.source.match(/{.*?}/).length > 0);
|
|
- text: Your regex should not match <code>"Hazzah"</code>
|
|
testString: assert(!haRegex.test("Hazzah"));
|
|
- text: Your regex should not match <code>"Hazzzah"</code>
|
|
testString: assert(!haRegex.test("Hazzzah"));
|
|
- text: Your regex should match <code>"Hazzzzah"</code>
|
|
testString: assert("Hazzzzah".match(haRegex)[0].length === 8);
|
|
- text: Your regex should match <code>"Hazzzzzah"</code>
|
|
testString: assert("Hazzzzzah".match(haRegex)[0].length === 9);
|
|
- text: Your regex should match <code>"Hazzzzzzah"</code>
|
|
testString: assert("Hazzzzzzah".match(haRegex)[0].length === 10);
|
|
- text: Your regex should match <code>"Hazzah"</code> with 30 <code>z</code>'s in it.
|
|
testString: assert("Hazzzzzzzzzzzzzzzzzzzzzzzzzzzzzzah".match(haRegex)[0].length === 34);
|
|
|
|
```
|
|
|
|
</section>
|
|
|
|
## Challenge Seed
|
|
<section id='challengeSeed'>
|
|
|
|
<div id='js-seed'>
|
|
|
|
```js
|
|
let haStr = "Hazzzzah";
|
|
let haRegex = /change/; // Change this line
|
|
let result = haRegex.test(haStr);
|
|
```
|
|
|
|
</div>
|
|
|
|
|
|
|
|
</section>
|
|
|
|
## Solution
|
|
<section id='solution'>
|
|
|
|
```js
|
|
let haStr = "Hazzzzah";
|
|
let haRegex = /Haz{4,}ah/; // Change this line
|
|
let result = haRegex.test(haStr);
|
|
```
|
|
</section>
|