[Javascript] 正規表達式

Posted by Huli on 2014-04-05

今天剛好有人來問我這個我又不太會
上網查了點資料之後動手做一下,有比較熟悉一點
趕快寫篇文章記錄一下心得
js的正規表達式要用/..../包起來
例如說要驗證一個數字 /\d/

^是代表字串的開頭,$是代表字串的結尾
\d是數字,+是代表一個以上,{2}則是指定要出現兩次的意思
()刮起來就是記憶單位,就是以後可以被讀取出來的部分
前面加上?:就是代表不想被記憶
後面加上?就代表是可選擇的單位

如果我們想要驗證一個電話並且抓出他的區碼、號碼跟分機
(號碼限定8碼)

1
2
3
4
5
6
7
8
var tel = "02-12345678#123";
var pattern = /^(0\d+)-(\d{8})(?:(?:#)(\d+))?$/;
document.writeln(pattern.test(tel))
var result = pattern.exec(tel);
for(i=1;i<result.length;i++){
document.writeln(i+":"+result[i]);
}

參考資料:
[JS]正規表示法(Regular expressions)
http://syunguo.blogspot.tw/2013/04/jsregular-expressions.html

[javascript] 正規化表示法速查表
http://felixhuang.pixnet.net/blog/post/23673013-[javascript]-正規化表示法速查表

正規表達式模式的編寫
https://developer.mozilla.org/zh-TW/docs/Core_JavaScript_1.5_教學/正規表達式模式的編寫