可以參考
http://www.w3schools.com/jsref/jsref_obj_regexp.asp
● /pattern/modifiers
○ pattern
◎ 運算元:
[abc]:找到有abc字元(a或b或c)
[^abc]:不包含abc字元
a|b :找到a或b
n+ :找到n至少一次
n* :找到n 零次或一次以上
n? :找到n 零次或一次
◎ 特殊符號:
\w :word-character (a-z, A-Z, 0-9,_)
\W:非word-character
\d :digit (0-9)
\D:非digit
\s :空白
\S:非空白
\b:在開頭或結尾
\B:不在開頭或結尾
\n:換行符號
\r: carriage return
\t: tab
○ modifiers
i: 忽略大小寫
m: multiline matching,和換行有關
● javascript RegExp Object:
○建構:
var res = new RegExp(pattern, modifiers);
○Method:
1. exec()
2. test(): match時回傳true,否則回傳false
3. toString()
e.g.
var res = new RegExp(/[2-9]/g);
if (res.test(input_txt.value))
{
alert("Sorry! " + input_txt.value + " is not accepted");
clear_in();
return;
}
● replace(): (String method)
1. str.replace("str1", "str2"):str1被取代為str2
2. str.replace(/pattern/modifiers, "str1"):match的pattern取代為str1
3. str.replace(res, "str1"):利用ResExp object,將match到的pattern取代為str1
4. 利用$1可以取得()中match到的pattern (一定要用小括號)
e.g. (將2進位數字轉換成number)
str.replace(/([0-1]+)/g, "parseInt(\"$1\",2)")
eval(str)
● test($str): (regexp method)
用來測試string是否包含pattern(回傳true或false)
e.g.
var res = new RegExp(pattern, modifier);
var str = "...";
res.test(str);
● match: (String method)
用來測試string 是否包含pattern(回傳match的pattern)
e.g.
var str = "...";
var res = str.match(/pattern/modifier);