new
var re = new RegExp('test','gi');
var re = /test/gi;
function
test();//bool
exec();//string 一次匹配并返回
match();//array 多次匹配并返回
search();//類似indexOf()
replace();//替換
split();//分割
有用的預定義類
. [^\n\r]//不包含換行的任何字符
\d [0-9]
\D [^0-9]
\s [\t\n\x0B\f\r]//空字符,換行符
\S [^\t\n\x0B\f\r]//非空,非換行
\w [a-zA-Z0-9]
\W [^a-zA-Z0-9]
量詞
? {0,1}
* {0,}
+ {1,}
{n} 一定出現n次
{n,m} 至少出現n次,但不超過m次
{n,} 至少出現n次
量詞在 正則表達式 中占了很重要的一部分,熟練使用量詞是學好正則一個關鍵。
貪婪: "{m,n}", "{m,}", "?", "*", "+"
(d)(\w+) "\w+" 將匹配第一個 "d" 之后的所有字符 "xxxdxxxd"
(d)(\w+)(d) "\w+" 將匹配第一個 "d" 和最后一個 "d" 之間的所有字符 "xxxdxxx"。雖然 "\w+" 也能夠匹配上最后一個 "d", 但 是為了使整個表達式匹配成功,"\w+" 可以 "讓出" 它本來能夠匹配的最后一個 "d"
懶惰: "{m,n}?", "{m,}?", "??", "*?", "+?"
(d)(\w+?) "\w+?" 將盡可能少的匹配第一個 "d" 之后的字符,結果是:"\w+?" 只匹配了一個 "x"
(d)(\w+?)(d) 為了讓整個表達式匹配成功,"\w+?" 不得不匹配 "xxx" 才可以讓后邊的 "d" 匹配,從而使整個表達式匹配成功。因此,結果是:"\w+?" 匹配 "xxx"
分組
var test = '([1-2])([a-z])';
test.replace(reg,function(r0,r1){
console.log(r1);//可用r0,r1進行任意操作
console.log(RegExp.$1);//等價r1
});
上一篇:JavaScript面向對象簡介
掃一掃 加微信咨詢