為什麼需要
傳統驗證方式過於繁瑣,編寫非常麻煩
簡單模式
只能表示具體的匹配
示例:var reg=/china/;
var reg=/abc8/;
復合模式
可以使用萬用字元表達更為抽象的規則模式
示例:var reg=/^\w+$/;//正規表示式
/^ \w+ $/
var reg=/^\w+
@\w+
\.((com)|(cn)|(com.cn))$/;
jkjp@qq
.com jkjkp2000@163.
com.cn jkjkp@sina.
cn\w+ --》匹配
jkjkp
正規表示式/^\w?/ 未使用
$符號結束 和有$區別
$代表以該正規表示式結尾的字串例如
abc$
只匹配123abc,
rtyabc
(表示要驗證的資料必須以
abc結束
)如果只是
abc的話,那麼123abc456,
rtfabcfgh
都可以匹配
加了^ 表示
^後面的第一位字元必須匹配的字串首位相同,不加的話任意順序匹配。
var reg=/abc/;
alert(reg.test("dcabca")); true
var reg=/^abc/;
alert(reg.test("dcabca")); false
var reg=/^abc/;
alert(reg.test("abcseda")); true
var reg=/^abc$/;
alert(reg.test("abcseda")); false
正規表示式符號
/…/ 代表乙個模式的開始和結束
^ 匹配字串的開始
$ 匹配字串的結束
\s 任何空白字元
\s 任何非空白字元
\d 匹配乙個數字字元,等價於[0-9]
\d 除了數字之外的任何字元,等價於[^0-9]
\w 匹配乙個數字、下劃線或字母字元,等價於[a-za-z0-9_]
\w 任何非單字字元,等價於[^a-za-z0-9_]
.除了換行符之外的任意字元
匹配前一項n次,或者多次(
n<=
) 匹配前一項至少n次,但是不能超過m次
(n<=
* 匹配前一項0次或多次,等價於
(可有可無)
+ 匹配前一項1次或多次,等價於
(至少有乙個
)? 匹配前一項0次或
1次,也就是說前一項是可選的,等價於
(要麼有要麼只能出現一次
)正規表示式的應用
使用者名稱、密碼、電子郵箱、手機號碼、身份證號碼、生日、固定**
常見正則
使用者名稱:/^[a-za-z0-9_-]$/
密碼:/^[a-z0-9_-]$/
年 19**|200*|201* 月
01~09|1*
日 1~9|10~29|30|31 2012-09-12 0?[1-9]
1998-08-13
出生日期:/^((19\d)
|(200\d)|(201[0-7]))-(0?[1-9]
|1[0-2])-(0?[1-9]|[1-2]\d|3[0-1])$/
/^\w+@\w+\.((com)|(cn)|(com.cn))$/
匹配國內**號碼:(\d-\d)|(\d-\d)
評注:匹配形式如 0511-4405222 或
021-87888822
匹配身份證:\d|\d
評注:中國大陸的身份證為15位或
18位
正規表示式 正規表示式 總結
非負整數 d 正整數 0 9 1 9 0 9 非正整數 d 0 負整數 0 9 1 9 0 9 整數 d 非負浮點數 d d 正浮點數 0 9 0 9 1 9 0 9 0 9 1 9 0 9 0 9 0 9 1 9 0 9 非正浮點數 d d 0 0 負浮點數 正浮點數正則式 英文本串 a za z...
正規表示式 表示式
網域名稱 a za z0 9 a za z0 9 a za z0 9 a za z0 9 interneturl a za z s 或 http w w w 手機號碼 13 0 9 14 5 7 15 0 1 2 3 5 6 7 8 9 18 0 1 2 3 5 6 7 8 9 d 號碼 x x x...
Linux正規表示式 編寫正規表示式
為了所有實用化的用途,你可以通過使用程式產生正確的結果。然而,並不意味著程式總是如你所願的那樣正確地工作。多數情況下,如果程式不能產生想要的輸出,可以斷定真正的問題 排除輸入或語法錯誤 在於如何描述想要的東西。換句話說,應該考慮糾正問題的地方是描述想要的結果的表示式。表示式不完整或者公式表示得不正確...