初級 免費 ⏱ 20:00
08-2 文字捕手:正規表達式基礎
學習如何解析文字的模式。掌握正規表達式的基礎語法、Capture Groups,並學會在實戰中驗證表單。
08-2 文字捕手:正規表達式基礎
👋 **老師的話 (Script)**:
"正規表達式 (Regex) 大概是所有新手最想逃避的部分。
那些 `/^[\w-\.]+@([\w-]+\.)+[\w-]{2,4}$/` 之類的東西,看起來真的跟咒語沒兩樣。
但相信我,只要掌握了基礎的『單字』和『語法』, Regex 將成為你一生受用的技能。 今天我們不求一次背完,我們先學會如何用它來解決最常見的問題:驗證與搜尋。“
1. 建立正規表達式
const regex1 = /hello/i; // 字面量 (最常用), i 代表忽略大小寫
const regex2 = new RegExp("hello", "i"); // 建構式
2. 常用「單字」 (Metacharacters)
\d: 匹配數字 [0-9]\w: 匹配單字文字 (字母、數字、下底線)\s: 匹配空格、Tab.: 匹配任一字元 (除了換行)^/$: 匹配字串開頭 / 字串結尾
3. 數量 (Quantifiers)
*: 零個以上+: 一個以上?: 零個或一個{3}: 正好三個
4. 實戰:簡單的 Email 驗證
const emailRegex = /^[^\s@]+@[^\s@]+\.[^\s@]+$/;
console.log(emailRegex.test("test@example.com")); // true
console.log(emailRegex.test("invalid-email")); // false
捕捉群組 (Capture Groups)
使用 () 可以把你要的部分「抓」出來。
const dateRegex = /(\d{4})-(\d{2})-(\d{2})/;
const match = "2026-02-18".match(dateRegex);
console.log(match[1]); // "2026" (年份)
🧪 Lab 17: 手機號碼捕獲
請寫一個 Regex 匹配台灣的手機格式
0911-222-333 或是 0911222333。
💡 提示:使用 -? 來代表選擇性的連字號。