前言
這個學起來不難,倒是很容易忘記??干脆寫一次記錄下來,方便以后查閱
什么是正則表達式
能讓計算機讀懂的字符串匹配規(guī)則
寫法
var re=new RegExp('規(guī)則', '可選參數(shù)');例如:var str = "lyichao"; var patt1 = /^[a-z]+$/; document.write(str.match(patt1)); //輸出結果:lyichao
規(guī)則中的字符
普通字符匹配
如:
/a/匹配字符‘a’,/a,b/匹配字符‘a,b’轉義字符匹配
字符 含義 \d匹配一個數(shù)字,即0-9 \D匹配一個非數(shù)字,即除了0-9 \w匹配一個單詞字符(字母、數(shù)字、下劃線) \W匹配任何非單詞字符。等價于 [^A-Za-z0-9_]\s匹配一個空白符 \S匹配一個非空白符 \b匹配單詞邊界 \B匹配非單詞邊界 .匹配一個任意字符,除了換行符 \n和回車符\r\1重復子項
量詞
量詞 含義 ?出現(xiàn)零次或一次(最多出現(xiàn)一次) +出現(xiàn)一次或多次(至少出現(xiàn)一次) *出現(xiàn)零次或多次(任意次) {n}出現(xiàn)n次 {n,m}出現(xiàn)n到m次 {n,}至少出現(xiàn)n次
任意一個范圍
范圍 含義 [abc123]匹配‘abc123’中的任意一個字符 [a-z0-9]匹配a到z或者0到9中的任意一個字符
限制開頭結尾
限定符 含義 ^以緊挨的元素開頭 $以緊挨的元素結尾
常用函數(shù)
test用法:正則.test(字符串) 匹配成功,就返回真,否則就返回假
search用法:字符串.search(正則) 匹配成功,返回位置,否則返回-1
match用法: 字符串.match(正則);匹配成功,就返回匹配成功的數(shù)組,否則就返回null
replace用法:字符串.replace(正則,新的字符串) 匹配成功的字符去替換新的字符
常用表達式
| 表達式 | 含義 |
|---|---|
^[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ù)字或下劃線,主機名限制為小寫字母和數(shù)字,域名限制為小寫字母) |
^[1][3-9][0-9]\d{8} |
國內11位手機號碼 |
^\d{17}[X\d]{1}$ |
18位身份證 |
^[1-9]\d*$ |
正整數(shù) |
^-[1-9]\d*$ |
負整數(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])$ 年-月-日