Regex

// 以下兩個相同
var re = new RegExp("\\w+", "gi");
var re = /\w+/gi;

RegexOne

/g // global 抓
/i // 代表不區分大小寫都找
  • [abc] → 抓單一個字元: a, b, or c

  • [^abc] → 抓任何單一字元除了 a, b, or c

  • [a-z] → 抓任何小寫a-z之間的字元

  • [a-zA-Z] → 抓任何小寫a-z,大寫A-Z之間字元

  • \d → 任何數字字元

  • \D → 任何不是數字字元

  • \w → 任何字串+底線,其實等於[a-z\dA-Z_]

  • \W → 跟\w相反

  • \s → 空白鍵

  • \S → 任何不是空白鍵字元

  • . → 任何字串

  • \. → .這個符號

  • ^ → 字串開頭位置

  • $ → 字串結尾位置

  • \b → boundary. "one 2sa one".match(/\bone\b/g)

  • (…) → 抓()裡面的字串

  • a|b → a 或 b, 它可以是一串字串

  • \b → 在邊界的字元, ex hello.pdf, h跟p都是邊界字元

  • a? → 抓0個或1個的a , ex 我想抓a跟(a), /(?a/)?

  • a* → 抓0以上的a, ex 抓hello全部, (\w*)

  • a+ → 抓1以上的a

  • a{3} → 抓3個a

  • a{3,} → 抓3個以上a

  • a{3,6} → 抓3-6個之間的a

email: ([\w\-]+@[\w\.]+)

  • [\w\-] → 抓任何單一字元跟- // h,a,n,n,a,h

  • [\w\-]+ → 抓成字串 // hannah

  • ([\w\-]+@[\w\.]+) → 把email整個包起來抓

phone: \(?\d{3}\)?[\s\-]\d{3}[\-\s]\d{4}

  • \d{3} → 3個數字 // 111

  • \(?\d{3}\)? → 3個數字可以被()包起來也可以不要 // 111 or (111)

  • \(?\d{3}\)?[\s\-] → 3個數字後可能會是-或空格隔開 // 111-, 111

  • \(?\d{3}\)?[\s\-]\d{3} → 再接3個數字 // 111-222

  • \(?\d{3}\)?[\s\-]\d{3}[\-\s] → 後面可能會是-或空格隔開 // 111-222-, 111-222

  • \(?\d{3}\)?[\s\-]\d{3}[\-\s]\d{4} → 最後再接4個數字 // 111-222-3333

Last updated