RegExp正則3
1.正則:檢索字串的一條規則。
2.正則就是由元字元和修飾符構成的
3.寫在//裡面的都叫元字元,與元字元兩種 一種是有特殊意義,一種沒有特殊意義,沒有特殊意義的就是字元本身。
特殊意思的元字元
1. \轉義字元 轉譯後面緊跟的字元的意義 \d \.
2. .代表除了\n以外的任何單個字元
3. d,D, w,W, s, S, b,B
4. ^ 以什麼開頭 kangchuo
5. $以什麼結束 \$就是$本身
6. |代表或的意思
帶有兩次意思的元字元
1. ?代表0到1個
2. *代表0到多個
3. +代表1到多個
4.{}系列
[]系列元字元
[xyz]x或y或z中的任意一個
[0-9]代表0-9之間的任意一個
[a-z]代表小寫a到小寫z
[A-Z]代表大寫A到大寫Z
[A-z]代表大寫A到寫z
()分組系列
(x|y)
正則的細節
1.正則定義的區別
var reg=/hello/g
var reg=new RegExp("hello","g")
前者裡面不能引用變數, 後者可以。
2.reg=/^\d$/
因為^和$符不佔用位置,也就說明開頭和結尾之間夾了一個數字,表達一個純數字
3././和/\./的區別
前者代表任意一個字元,後者代表字串中得有一個.
4.[.],[+]的意思
.和+在正則裡是特殊的元字元, . 是任意字元+是量詞代表多個。
在[]裡面的.和+就是這個字元本身,沒有意義。
5.|代表或
[2|3]代表2或3
[12|34]代表1或2|3或4,或者12|34往往這種情況需要分組()
[(12|34)]
[xyz]
6.-的問題
/-/就是-本身。沒有意義,如果寫在[0-9]代表0到9之間的任意一個數字。
[12-65]代表18到65之間的數字? ? ?
表達的是1或者2-6的數字或者5
案例 1寫一個12到65週歲的正則
var reg=/^(1[2-9])|([2-5][0-9])|(6[0-5])$/
var st="66"
console.log(reg.test(st))
案例2寫一個正常的數字的正則
+12 -12 23 23.256 6 0.36
var reg=/^[+-]?([0-9]|[1-9]\d+)(\.\d+)?$/
var st="60"
console.log(reg.test(st))