正規表示式

2021-08-19 19:34:15 字數 1935 閱讀 3156

為什麼需要

傳統驗證方式過於繁瑣,編寫非常麻煩

簡單模式

只能表示具體的匹配

示例: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))$/

[email protected]

匹配國內**號碼:(\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正規表示式 編寫正規表示式

為了所有實用化的用途,你可以通過使用程式產生正確的結果。然而,並不意味著程式總是如你所願的那樣正確地工作。多數情況下,如果程式不能產生想要的輸出,可以斷定真正的問題 排除輸入或語法錯誤 在於如何描述想要的東西。換句話說,應該考慮糾正問題的地方是描述想要的結果的表示式。表示式不完整或者公式表示得不正確...