【正則】
1.什麼是正則
正規表示式(規則表示式) regular expression
正則其實就是描述了一套規則,本質是操作字串。
2.正則是幹什麼的? 操作字串的
(1)模式匹配 (表單驗證)
(2)文字檢索
(3)替換
3.正則的好處(為什麼用它)
簡單,方便
效能極高
4.字串方法都有哪些
substring(開始位置,[結束位置])
substr(開始位置,個數)
slice(開始位置,[結束位置])
charat(下標)
indexof()
lastindexof()
split() ---轉陣列
tolowercase()
touppercase()
replace(把誰,替換成誰)
trim() 去除收尾空格
正則怎麼使用
(1) var reg=new regexp('規則','選項'); 通過建構函式建立(好處:可以放變數)
(2) var reg=/規則/選項 通過字面量建立 (不可以放變數)
字串方法中使用正則的
(1) str.search(正則); 搜尋符合正則條件的字串的下標 返回的是數字 沒有找到返回-1
類似indexof 通過正則找下標
(2) str.match(正則) 挑,選出符合正則條件的字串 返回的是陣列 沒有返回null
(3.1) str.replace(正則,替換成誰) 把符合正則條件的字串替換成某個字串
(3.2) str.replace(正則,function(s))
選項(模式):
g global 全域性
i ignore 不區分大小寫
m mutil-line 多行
選項不區分順序
轉譯字元(元字元)
\d 數字 [0-9]
\s 空格
\w 單詞 [a-za-z0-9_]
\d 非數字 [^0-9]
\s 非空格
\w 非單詞 [^a-za-z0-9_]
.代表所有,任意字元
\. 代表的是 .
\\ 代表\
\\\\ \\
.\ / ? + 都要前面加 \ 轉譯
如:http//
轉後:http//
量詞
正好n個 \d--->\d\d\d
最少n個最多m個
最少n個 多了不限
錯× 字串的個數不能出現負數
+ 若干個 最少1個多了不限
? 可以沒有,最多乙個
* 可以沒有 多了不限
10.1 [ ]
有或的用法
/[abc]/ /a|b|c/
/a[bc]/ /ab|ac/
/a[bc]d/ /abd|acd/
/[a|b]/ a b |
10.2 範圍的用法
/[a-z]/ abcde....z
/[0-9]/ \d
/[1-38]/ 1 2 3 8
10.3. 排除
/[^0-9]/ 表示排除0-9
總結: [ ]
1、裡面的東西都是或的形式
2、裡面和放範圍
3、[^] 不代表行首,代表除去裡面的範圍
4、其他特殊符號代表本身
修飾符
| 代表或
^ 行首 注:如果^單獨使用,代表字串行首,配合m使用會識別段落
$ 行尾
12 ( )
1.分組()
a+ aaaaa
ab+ abbbbb
(ab)+ abababab
2 .匹配子級
配合replace使用 str.replace(reg,function(s,a,b))
3.優選級
4. 重複的子項
如:abbb /(a)(b)\2+/ 表示第二項重複
aaaab /(a)\1+(b)/ 表示第一項重複
正則的校驗
強校驗
弱校驗
14.正則有校驗的方法
(1) 正則.test(字串) 返回 true false
test() 一般配合^ &
功能:用於檢測是否於正則匹配。
返回:布林值,true匹配,false不匹配
語法:reg.test(檢測的內容)
(2)正則.exec(字串)
功能:用於檢測是否於正則匹配。
返回:陣列, 不匹配返回null
語法:reg.test(檢測的內容)
例子:
qq號校驗 5-12
/[1-9]\d/
座機號 : 區號-座機號 如:010或1012 0289
區號 (0[1-9]\d-)?
座機號 [1-9]\d
/^(0[1-9]\d-)?[1-9]\d$/
手機號
/1[3-57-9]\d/
中文校驗
[\u4e00-\u9fa5]
一 龥
\u表示字元編碼 4e00 和 9fa5 是十六進製制編碼
紅黑樹 一看就會
red black tree是自平衡 非絕對平衡 的二叉查詢樹 先嘗試recolor,置色紅黑 再嘗試rotation 旋轉 插入新節點,標紅,如果為根節點,則標黑 如果不是根節點,且其parent是紅,uncle是紅 插入新節點,標紅,如果為根節點,則標黑 如果不是根節點,且其parent是紅,u...
Mysql的多表查詢,一看就會!
1.隱式內連線 隱式內連線在開發過程中不建議使用,因為效率較低 這裡只是提供一種解決思路 select 字段列表 from 表a,表b where 條件 簡單說明 隱式內連線相對於單錶查詢,只是將表a後面新加了乙個表b,但是注意一點,如果where後面的條件沒有判斷兩表之間關聯的字段的話,會發生迪卡...
sizeof計算大小規則 一看就會
看了幾遍 sizeof 的內容,老是忘記,這裡做下筆記,以供複習與參考。sizeof a 用來計算a所佔位元組大小,其中a可以是型別名,也可以是變數,亦或是物件 函式。1 sizeof int 型別 2 sizeof a int a 變數 3 sizeof a class a a a 物件 4 si...