Kimon a3b54d34cb
Differentiate between test & match (#38498)
* Differentiate between test & match

I noticed that nowhere was there a mention that .match() and .test() pass in and are applied to opposite objects.  This would've saved me a few minutes of searching during later challenges that assume this is understood.

* Add in .match & .test difference after example

* fix: add spaces to stop lint errors

Co-authored-by: Oliver Eyton-Williams <ojeytonwilliams@gmail.com>
2020-04-25 08:35:46 -05:00

80 lines
1.8 KiB
Markdown

---
id: 587d7db4367417b2b2512b92
title: Extract Matches
challengeType: 1
forumTopicId: 301340
---
## Description
<section id='description'>
So far, you have only been checking if a pattern exists or not within a string. You can also extract the actual matches you found with the <code>.match()</code> method.
To use the <code>.match()</code> method, apply the method on a string and pass in the regex inside the parentheses.
Here's an example:
```js
"Hello, World!".match(/Hello/);
// Returns ["Hello"]
let ourStr = "Regular expressions";
let ourRegex = /expressions/;
ourStr.match(ourRegex);
// Returns ["expressions"]
```
Note that the `.match` syntax is the "opposite" of the `.test` method you have been using thus far:
```js
'string'.match(/regex/);
/regex/.test('string');
```
</section>
## Instructions
<section id='instructions'>
Apply the <code>.match()</code> method to extract the word <code>coding</code>.
</section>
## Tests
<section id='tests'>
```yml
tests:
- text: The <code>result</code> should have the word <code>coding</code>
testString: assert(result.join() === "coding");
- text: Your regex <code>codingRegex</code> should search for <code>coding</code>
testString: assert(codingRegex.source === "coding");
- text: You should use the <code>.match()</code> method.
testString: assert(code.match(/\.match\(.*\)/));
```
</section>
## Challenge Seed
<section id='challengeSeed'>
<div id='js-seed'>
```js
let extractStr = "Extract the word 'coding' from this string.";
let codingRegex = /change/; // Change this line
let result = extractStr; // Change this line
```
</div>
</section>
## Solution
<section id='solution'>
```js
let extractStr = "Extract the word 'coding' from this string.";
let codingRegex = /coding/; // Change this line
let result = extractStr.match(codingRegex); // Change this line
```
</section>