freeCodeCamp/curriculum/challenges/chinese-traditional/02-javascript-algorithms-an.../regular-expressions/specify-upper-and-lower-num...

2.1 KiB

id title challengeType forumTopicId dashedName
587d7db9367417b2b2512ba5 指定匹配的上限和下限 1 301367 specify-upper-and-lower-number-of-matches

--description--

回想一下,使用加號 + 查找一個或多個字符,使用星號 * 查找零個或多個字符。 這些都很方便,但有時需要匹配一定範圍的匹配模式。

可以使用數量說明符(quantity specifiers)指定匹配模式的上下限。 數量說明符與花括號({})一起使用。 可以在花括號之間放兩個數字,這兩個數字代表匹配模式的上限和下限。

例如,要匹配出現 35 次字母 a 的在字符串 ah,正則表達式應爲/a{3,5}h/

let A4 = "aaaah";
let A2 = "aah";
let multipleA = /a{3,5}h/;
multipleA.test(A4);
multipleA.test(A2);

第一次 test 調用將返回 true,而第二次調用將返回 false

--instructions--

修改正則表達式 ohRegex 以匹配出現 36 次字母 h 的字符串 Oh no

--hints--

你的正則表達式應該使用花括號。

assert(ohRegex.source.match(/{.*?}/).length > 0);

你的正則表達式不應匹配字符串 Ohh no

ohRegex.lastIndex = 0;
assert(!ohRegex.test('Ohh no'));

你的正則表達式應該匹配字符串 Ohhh no

assert('Ohhh no'.match(ohRegex)[0].length === 7);

你的正則表達式應該匹配字符串 Ohhhh no

assert('Ohhhh no'.match(ohRegex)[0].length === 8);

你的正則表達式應該匹配字符串 Ohhhhh no

assert('Ohhhhh no'.match(ohRegex)[0].length === 9);

你的正則表達式應該匹配字符串 Ohhhhhh no

assert('Ohhhhhh no'.match(ohRegex)[0].length === 10);

你的正則表達式應該匹配字符串 Ohhhhhhh no

ohRegex.lastIndex = 0;
assert(!ohRegex.test('Ohhhhhhh no'));

--seed--

--seed-contents--

let ohStr = "Ohhh no";
let ohRegex = /change/; // Change this line
let result = ohRegex.test(ohStr);

--solutions--

let ohStr = "Ohhh no";
let ohRegex = /Oh{3,6} no/; // Change this line
let result = ohRegex.test(ohStr);