* feat(tools): add seed/solution restore script * chore(curriculum): remove empty sections' markers * chore(curriculum): add seed + solution to Chinese * chore: remove old formatter * fix: update getChallenges parse translated challenges separately, without reference to the source * chore(curriculum): add dashedName to English * chore(curriculum): add dashedName to Chinese * refactor: remove unused challenge property 'name' * fix: relax dashedName requirement * fix: stray tag Remove stray `pre` tag from challenge file. Signed-off-by: nhcarrigan <nhcarrigan@gmail.com> Co-authored-by: nhcarrigan <nhcarrigan@gmail.com>
2.6 KiB
id, title, challengeType, forumTopicId, dashedName
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;