2018-09-30 23:01:58 +01:00
|
|
|
---
|
|
|
|
id: 587d7db4367417b2b2512b93
|
|
|
|
title: Find More Than the First Match
|
|
|
|
challengeType: 1
|
2019-08-05 09:17:33 -07:00
|
|
|
forumTopicId: 301342
|
2018-09-30 23:01:58 +01:00
|
|
|
---
|
|
|
|
|
|
|
|
## Description
|
|
|
|
<section id='description'>
|
|
|
|
So far, you have only been able to extract or search a pattern once.
|
2019-05-17 06:20:30 -07:00
|
|
|
|
|
|
|
```js
|
|
|
|
let testStr = "Repeat, Repeat, Repeat";
|
|
|
|
let ourRegex = /Repeat/;
|
|
|
|
testStr.match(ourRegex);
|
|
|
|
// Returns ["Repeat"]
|
|
|
|
```
|
|
|
|
|
2018-09-30 23:01:58 +01:00
|
|
|
To search or extract a pattern more than once, you can use the <code>g</code> flag.
|
2019-05-17 06:20:30 -07:00
|
|
|
|
|
|
|
```js
|
|
|
|
let repeatRegex = /Repeat/g;
|
|
|
|
testStr.match(repeatRegex);
|
|
|
|
// Returns ["Repeat", "Repeat", "Repeat"]
|
|
|
|
```
|
|
|
|
|
2018-09-30 23:01:58 +01:00
|
|
|
</section>
|
|
|
|
|
|
|
|
## Instructions
|
|
|
|
<section id='instructions'>
|
|
|
|
Using the regex <code>starRegex</code>, find and extract both <code>"Twinkle"</code> words from the string <code>twinkleStar</code>.
|
|
|
|
<strong>Note</strong><br>You can have multiple flags on your regex like <code>/search/gi</code>
|
|
|
|
</section>
|
|
|
|
|
|
|
|
## Tests
|
|
|
|
<section id='tests'>
|
|
|
|
|
|
|
|
```yml
|
2018-10-04 14:37:37 +01:00
|
|
|
tests:
|
|
|
|
- text: Your regex <code>starRegex</code> should use the global flag <code>g</code>
|
2019-07-24 02:32:04 -07:00
|
|
|
testString: assert(starRegex.flags.match(/g/).length == 1);
|
2018-10-04 14:37:37 +01:00
|
|
|
- text: Your regex <code>starRegex</code> should use the case insensitive flag <code>i</code>
|
2019-07-24 02:32:04 -07:00
|
|
|
testString: assert(starRegex.flags.match(/i/).length == 1);
|
2018-10-04 14:37:37 +01:00
|
|
|
- text: Your match should match both occurrences of the word <code>"Twinkle"</code>
|
2019-07-24 02:32:04 -07:00
|
|
|
testString: assert(result.sort().join() == twinkleStar.match(/twinkle/gi).sort().join());
|
2018-10-04 14:37:37 +01:00
|
|
|
- text: Your match <code>result</code> should have two elements in it.
|
2019-07-24 02:32:04 -07:00
|
|
|
testString: assert(result.length == 2);
|
2018-09-30 23:01:58 +01:00
|
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
</section>
|
|
|
|
|
|
|
|
## Challenge Seed
|
|
|
|
<section id='challengeSeed'>
|
|
|
|
|
|
|
|
<div id='js-seed'>
|
|
|
|
|
|
|
|
```js
|
|
|
|
let twinkleStar = "Twinkle, twinkle, little star";
|
|
|
|
let starRegex = /change/; // Change this line
|
|
|
|
let result = twinkleStar; // Change this line
|
|
|
|
```
|
|
|
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
</section>
|
|
|
|
|
|
|
|
## Solution
|
|
|
|
<section id='solution'>
|
|
|
|
|
|
|
|
```js
|
2019-01-24 15:29:23 -05:00
|
|
|
let twinkleStar = "Twinkle, twinkle, little star";
|
|
|
|
let starRegex = /twinkle/gi;
|
|
|
|
let result = twinkleStar.match(starRegex);
|
2018-09-30 23:01:58 +01:00
|
|
|
```
|
2019-07-18 08:24:12 -07:00
|
|
|
|
2018-09-30 23:01:58 +01:00
|
|
|
</section>
|