正規表示式

2021-09-18 01:57:45 字數 3319 閱讀 3950

/*1.普通字元*/

a-z a-z 0-9 以及所有標點符號和其他符號

/*2.非列印字元*/

\n 匹配換行的

\s 匹配任何空白字元 (包括空格,製表符,換頁符等)

\s 匹配任何非空白字元

\f 匹配乙個換頁符

\r 匹配乙個回車符

/*3.特殊字元*/

$ 匹配輸入字串的結尾位置

() 匹配的是表示式裡面的子表示式 匹配自身 \( \)

* 表示匹配前面的子表示式 0次或多次 \*

+ 匹配前面的子表示式 1次或多次 \+

. 匹配單字元 \.

匹配的是表示式的開始和結尾

? 匹配前面的子表示式0次或1次

\ 匹配特殊字元 \\

^ 匹配輸入字串的開始位置。當該符號在方括號表示式中使用時,表示取反 \^

{} 匹配限定符的開始和結尾

| 取兩個之間乙個 \|

/*4.限定符*/

* 匹配0次或多次

+ 匹配1次或多次

? 匹配0次或1次

匹配前面的子表示式n次 (n為非負整數)

匹配至少n次

最少匹配n次 最多m次 (n<=m)

/*5.*/

\d 匹配數字

\d 匹配非數字

\g 全域性

\w 匹配字母,數字,下劃線。等價於 [a-za-z0-9_]

注:①如果要查詢字串中的 * 符號,則需要對 * 進行轉義,即在其前加乙個 \。例:runo\*ob 匹配字串runo*ob

②'n' 匹配字元 'n'。'\n' 匹配換行符。序列 '\\' 匹配 "\",而 '\(' 則匹配 "("。

?=   exp1(?=exp2):查詢 exp2 前面的 exp1

?< (?<=exp2)exp1:查詢 exp2 後面的 exp1

?! exp1(?!exp2):查詢後面不是 exp2 的 exp1

?正則有兩種使用方式:1.字串使用方式                2.物件使用方式

m.match(str); //返回為當前值,則正常。返回為null,則不正常

res reg=new regexp();

reg.text(m); //返回true、false

習題練習:

//1.手機號的正規表示式

var str=/^[1][3,5,7,8,9][0-9]$/;

var m="18329686796";

alert(m.match(str));

//2.驗證純數字

var str=/^\d+$/; //純數字 開始--結束,若有字母,輸出null

var str=/\d+/; //驗證數字一次或多次

var m="123o5678";

alert(m.match(str));

var m=/\d/;

var s="asdf9874630hjkl";

/*console.log(m.test(s));*/

console.log(s.match(m)[0]);

//3.驗證純字母

var s=/^\d+$/;p

var z="qewerfr";

alert(z.match(s));

//4.正規表示式替換字串的字元

var r="ai8anaa6ahytfarearbacapaoa";

//var s= r.replace(/a+/g,"a");

//var s= r.replace(/\d/g,"a");

var s= r.replace(/\d/g,"0");

alert(s)

//5.刪除空白

var r="a b c d e f g";

var s= r.replace(/\s/g,"");

console.log(s);

//6.郵箱驗證

/*郵箱@字首的幾種型別:

1、純數字   [email protected]

2、純字母      [email protected]

3、字母數字混合  [email protected]

4、帶點的      [email protected]

5、帶下劃線     [email protected]

6、帶連線線    [email protected]*/

//var s =/^[a-za-z\d]+([-_.][a-za-z\d]+)*@([a-za-z\d]+[.])+[a-za-z\d]$/;

// 數字字母混合匹配1次或多次,要不有點要不沒點,@,數字字母點混合匹配1次或多次,最後取2或4位

/*1、純數字*/

var s=/^\d+$/;

var a="123456";

alert(a.match(s));

/*2、純字母*/

var s=/^[a-za-z]+$/;

var b="asgfydtnfkjvo";

alert(b.match(s));

/*3、字母數字混合*/

var s=/^[a-za-z0-9]+$/;

var c="zhangsan1234";

alert(c.match(s));

/*4、帶點的*/

var s=/([.-_][a-za-z\d])+/;

var d=".z1hangsan123345";

alert(d.match(s));

//7.身份證驗證

var s = /^[1-9]\d((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d$|^[1-9]\d[1-9]\d((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d([0-9]|x)$/;

// 取7位數字,6224271 (0數字或10 11 12 月)(0或1或2數字 或 30 31天數)

//身份證--一代身份證和二代身份證(18位)

var s = /^[1-9]\d(18|19|20)\d((0[1-9])|(1[0-2]))(([0-2][1-9])|10|20|30|31)\d[0-9xx]$/

身份證正則參考文章:

正規表示式 正規表示式 總結

非負整數 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正規表示式 編寫正規表示式

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