前言
這個(gè)學(xué)起來不難,倒是很容易忘記??干脆寫一次記錄下來坪圾,方便以后查閱
什么是正則表達(dá)式
能讓計(jì)算機(jī)讀懂的字符串匹配規(guī)則
寫法
var re=new RegExp('規(guī)則', '可選參數(shù)');
例如:var str = "lyichao"; var patt1 = /^[a-z]+$/; document.write(str.match(patt1)); //輸出結(jié)果:lyichao
規(guī)則中的字符
普通字符匹配
如:
/a/
匹配字符‘a(chǎn)’
晓折,/a,b/
匹配字符‘a(chǎn),b’
轉(zhuǎn)義字符匹配
字符 含義 \d
匹配一個(gè)數(shù)字,即0-9 \D
匹配一個(gè)非數(shù)字兽泄,即除了0-9 \w
匹配一個(gè)單詞字符(字母漓概、數(shù)字、下劃線) \W
匹配任何非單詞字符病梢。等價(jià)于 [^A-Za-z0-9_]
\s
匹配一個(gè)空白符 \S
匹配一個(gè)非空白符 \b
匹配單詞邊界 \B
匹配非單詞邊界 .
匹配一個(gè)任意字符胃珍,除了換行符 \n
和回車符\r
\1
重復(fù)子項(xiàng)
量詞
量詞 含義 ?
出現(xiàn)零次或一次(最多出現(xiàn)一次) +
出現(xiàn)一次或多次(至少出現(xiàn)一次) *
出現(xiàn)零次或多次(任意次) {n}
出現(xiàn)n次 {n,m}
出現(xiàn)n到m次 {n,}
至少出現(xiàn)n次
任意一個(gè)范圍
范圍 含義 [abc123]
匹配‘a(chǎn)bc123’中的任意一個(gè)字符 [a-z0-9]
匹配a到z或者0到9中的任意一個(gè)字符
限制開頭結(jié)尾
限定符 含義 ^
以緊挨的元素開頭 $
以緊挨的元素結(jié)尾
常用函數(shù)
test
用法:正則.test(字符串) 匹配成功,就返回真蜓陌,否則就返回假
search
用法:字符串.search(正則) 匹配成功觅彰,返回位置,否則返回-1
match
用法: 字符串.match(正則)钮热;匹配成功填抬,就返回匹配成功的數(shù)組,否則就返回null
replace
用法:字符串.replace(正則隧期,新的字符串) 匹配成功的字符去替換新的字符
常用表達(dá)式
表達(dá)式 | 含義 |
---|---|
^[a-z0-9_-]{5,15}$ |
用戶名(限制小寫字母飒责、數(shù)字和下劃線,長度為6-15位) |
^[A-Za-z0-9_\W]{6,}$ |
密碼(允許大小寫字母仆潮、數(shù)字和下劃線宏蛉,長度限制至少6位) |
^[a-z0-9_]{6,18}\@[a-z0-9]{2,}\.[a-z0-9]{2,}$ |
郵箱(登錄名允許使用6-18位字母、數(shù)字或下劃線性置,主機(jī)名限制為小寫字母和數(shù)字拾并,域名限制為小寫字母) |
^[1][3-9][0-9]\d{8} |
國內(nèi)11位手機(jī)號碼 |
^\d{17}[X\d]{1}$ |
18位身份證 |
^[1-9]\d*$ |
正整數(shù) |
^-[1-9]\d*$ |
負(fù)整數(shù) |
^-?[1-9]\d*$ |
整數(shù) |
^\d{4}\-(0?[1-9]|1?[0-2])\-(0?[1-9]|1?[0-9]|2?[0-9]|3?[0-1])$
年-月-日