- 簡單模式
只能表示具體的匹配
示例:
var reg=/china/;
var reg=/abc8/;
- 複合模式
可以使用通配符表達更爲抽象的規則模式
示例:
var reg=/^\w+$/;
var reg=/^\w+@\w+\.((com)|(cn)|(com.cn))$/;
// [email protected] [email protected] [email protected]
// \w+ --》匹配 jkjkp
- 區別
正則表達式/^\w?/ 未使用$符號結束 和有$區別
$代表以該正則表達式結尾的字符串例如
abc$只匹配123abc,rtyabc
如果只是abc的話,那麼123abc456,rtfabcfgh都可以匹配
加了^ 表示^後面的第一位字符必須匹配的字符串首位相同,不加的話任意順序匹配。
- 正則表達式符號
/…/ 代表一個模式的開始和結束
^ 匹配字符串的開始
$ 匹配字符串的結束
\s 任何空白字符
\S 任何非空白字符
\d 匹配一個數字字符,等價於[0-9]
\D 除了數字之外的任何字符,等價於[^0-9]
\w 匹配一個數字、下劃線或字母字符,等價於[A-Za-z0-9_]
\W 任何非單字字符,等價於[^a-zA-z0-9_]
. 除了換行符之外的任意字符
{n,} 匹配前一項n次,或者多次
{n,m} 匹配前一項至少n次,但是不能超過m次
* 匹配前一項0次或多次,等價於{0,}
+ 匹配前一項1次或多次,等價於{1,}
? 匹配前一項0次或1次,也就是說前一項是可選的,等價於{0,1}
-
正則表達式的應用
用戶名、密碼、電子郵箱、手機號碼、身份證號碼、生日、固定電話 -
常見正則
用戶名:/^[a-zA-Z0-9_-]{3,16}$/
密碼:/^[a-z0-9_-]{6,18}$/
//年 19**|200*|201* 月 01~09|1* 日 1~9|10~29|30|31 2012-09-12 0?[1-9]
//1998-08-13
出生日期:/^((19\d{2})|(200\d)|(201[0-6]))-(0?[1-9]|1[0-2])-(0?[1-9]|[1-2]\d|3[0-1])$/
電子郵箱:/^([a-z0-9_\.-]+)@([\da-z-]+)\.((com)|(cn)|(com.cn))$/
/^\w+@\w+\.((com)|(cn)|(com.cn))$/
[email protected]
匹配國內電話號碼:(\d{3}-\d{8})|(\d{4}-\d{7})
評註:匹配形式如 0511-4405222 或 021-87888822
匹配身份證:\d{15}|\d{18}
評註:中國大陸的身份證爲15位或18位