freeCodeCamp/curriculum/challenges/english/02-javascript-algorithms-an.../regular-expressions/match-all-letters-and-numbe...

2.6 KiB

id title challengeType forumTopicId dashedName
587d7db7367417b2b2512b9f Match All Letters and Numbers 1 301346 match-all-letters-and-numbers

--description--

Using character classes, you were able to search for all letters of the alphabet with [a-z]. This kind of character class is common enough that there is a shortcut for it, although it includes a few extra characters as well.

The closest character class in JavaScript to match the alphabet is \w. This shortcut is equal to [A-Za-z0-9_]. This character class matches upper and lowercase letters plus numbers. Note, this character class also includes the underscore character (_).

let longHand = /[A-Za-z0-9_]+/;
let shortHand = /\w+/;
let numbers = "42";
let varNames = "important_var";
longHand.test(numbers); // Returns true
shortHand.test(numbers); // Returns true
longHand.test(varNames); // Returns true
shortHand.test(varNames); // Returns true

These shortcut character classes are also known as shorthand character classes.

--instructions--

Use the shorthand character class \w to count the number of alphanumeric characters in various quotes and strings.

--hints--

Your regex should use the global flag.

assert(alphabetRegexV2.global);

Your regex should use the shorthand character \w to match all characters which are alphanumeric.

assert(/\\w/.test(alphabetRegexV2.source));

Your regex should find 31 alphanumeric characters in "The five boxing wizards jump quickly."

assert(
  'The five boxing wizards jump quickly.'.match(alphabetRegexV2).length === 31
);

Your regex should find 32 alphanumeric characters in "Pack my box with five dozen liquor jugs."

assert(
  'Pack my box with five dozen liquor jugs.'.match(alphabetRegexV2).length ===
    32
);

Your regex should find 30 alphanumeric characters in "How vexingly quick daft zebras jump!"

assert(
  'How vexingly quick daft zebras jump!'.match(alphabetRegexV2).length === 30
);

Your regex should find 36 alphanumeric characters in "123 456 7890 ABC def GHI jkl MNO pqr STU vwx YZ."

assert(
  '123 456 7890 ABC def GHI jkl MNO pqr STU vwx YZ.'.match(alphabetRegexV2)
    .length === 36
);

--seed--

--seed-contents--

let quoteSample = "The five boxing wizards jump quickly.";
let alphabetRegexV2 = /change/; // Change this line
let result = quoteSample.match(alphabetRegexV2).length;

--solutions--

let quoteSample = "The five boxing wizards jump quickly.";
let alphabetRegexV2 = /\w/g; // Change this line
let result = quoteSample.match(alphabetRegexV2).length;