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
|
2021-01-13 03:31:00 +01:00
|
|
|
dashedName: find-more-than-the-first-match
|
2018-09-30 23:01:58 +01:00
|
|
|
---
|
|
|
|
|
2020-11-27 19:02:05 +01:00
|
|
|
# --description--
|
|
|
|
|
2018-09-30 23:01:58 +01:00
|
|
|
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"]
|
|
|
|
```
|
|
|
|
|
2020-11-27 19:02:05 +01:00
|
|
|
To search or extract a pattern more than once, you can use the `g` flag.
|
2019-05-17 06:20:30 -07:00
|
|
|
|
|
|
|
```js
|
|
|
|
let repeatRegex = /Repeat/g;
|
|
|
|
testStr.match(repeatRegex);
|
|
|
|
// Returns ["Repeat", "Repeat", "Repeat"]
|
|
|
|
```
|
|
|
|
|
2020-11-27 19:02:05 +01:00
|
|
|
# --instructions--
|
|
|
|
|
|
|
|
Using the regex `starRegex`, find and extract both `"Twinkle"` words from the string `twinkleStar`.
|
2018-09-30 23:01:58 +01:00
|
|
|
|
2020-11-27 19:02:05 +01:00
|
|
|
**Note**
|
|
|
|
You can have multiple flags on your regex like `/search/gi`
|
2018-09-30 23:01:58 +01:00
|
|
|
|
2020-11-27 19:02:05 +01:00
|
|
|
# --hints--
|
2018-09-30 23:01:58 +01:00
|
|
|
|
2020-11-27 19:02:05 +01:00
|
|
|
Your regex `starRegex` should use the global flag `g`
|
2018-09-30 23:01:58 +01:00
|
|
|
|
2020-11-27 19:02:05 +01:00
|
|
|
```js
|
|
|
|
assert(starRegex.flags.match(/g/).length == 1);
|
2018-09-30 23:01:58 +01:00
|
|
|
```
|
|
|
|
|
2020-11-27 19:02:05 +01:00
|
|
|
Your regex `starRegex` should use the case insensitive flag `i`
|
2018-09-30 23:01:58 +01:00
|
|
|
|
2020-11-27 19:02:05 +01:00
|
|
|
```js
|
|
|
|
assert(starRegex.flags.match(/i/).length == 1);
|
|
|
|
```
|
2018-09-30 23:01:58 +01:00
|
|
|
|
2020-11-27 19:02:05 +01:00
|
|
|
Your match should match both occurrences of the word `"Twinkle"`
|
2018-09-30 23:01:58 +01:00
|
|
|
|
|
|
|
```js
|
2020-11-27 19:02:05 +01:00
|
|
|
assert(
|
|
|
|
result.sort().join() ==
|
|
|
|
twinkleStar
|
|
|
|
.match(/twinkle/gi)
|
|
|
|
.sort()
|
|
|
|
.join()
|
|
|
|
);
|
2018-09-30 23:01:58 +01:00
|
|
|
```
|
|
|
|
|
2020-11-27 19:02:05 +01:00
|
|
|
Your match `result` should have two elements in it.
|
2018-09-30 23:01:58 +01:00
|
|
|
|
2020-11-27 19:02:05 +01:00
|
|
|
```js
|
|
|
|
assert(result.length == 2);
|
|
|
|
```
|
|
|
|
|
|
|
|
# --seed--
|
2018-09-30 23:01:58 +01:00
|
|
|
|
2020-11-27 19:02:05 +01:00
|
|
|
## --seed-contents--
|
2018-09-30 23:01:58 +01:00
|
|
|
|
2020-11-27 19:02:05 +01:00
|
|
|
```js
|
|
|
|
let twinkleStar = "Twinkle, twinkle, little star";
|
|
|
|
let starRegex = /change/; // Change this line
|
|
|
|
let result = twinkleStar; // Change this line
|
|
|
|
```
|
2018-09-30 23:01:58 +01:00
|
|
|
|
2020-11-27 19:02:05 +01:00
|
|
|
# --solutions--
|
2018-09-30 23:01:58 +01:00
|
|
|
|
|
|
|
```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
|
|
|
```
|