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