正則基礎(一看就會)

2021-09-18 02:58:15 字數 3098 閱讀 6655

【正則】

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...