JavaScript_正則表達式

正則表達式是用于匹配字符串中字符組合的模式。在JavaScript中,正則表達式也是對象。
正則表通常被用來檢索、替換那些符合某個模式(規(guī)則)的文本,例如驗證表單:用戶名表單只能輸入英文字母、數(shù)字或者下劃線, 昵稱輸入框中可以輸入中文(匹配)。此外,正則表達式還常用于過濾掉頁面內(nèi)容中的一些敏感詞(替換),或從字符串中獲取我們想要的特定部分(提取)等 。
1、特點
實際開發(fā),一般都是直接復(fù)制寫好的正則表達式
但是要求會使用正則表達式并且根據(jù)自身實際情況修改正則表達式
2、創(chuàng)建正則表達式
在JavaScript中,可以通過兩種方式創(chuàng)建正則表達式
通過調(diào)用 RegExp 對象的構(gòu)造函數(shù)創(chuàng)建
通過字面量創(chuàng)建
2.1、通過調(diào)用 RegExp 對象的構(gòu)造函數(shù)創(chuàng)建
通過調(diào)用 RegExp 對象的構(gòu)造函數(shù)創(chuàng)建
2.2、通過字面量創(chuàng)建
通過字面量創(chuàng)建
注釋中間放表達式就是正則字面量
2.3、測試正則表達式 test
test()
正則對象方法,用于檢測字符串是否符合該規(guī)則,該對象會返回true
或false
,其參數(shù)是測試字符串
regexObj
?寫的是正則表達式str
?我們要測試的文本就是檢測
str
文本是否符合我們寫的正則表達式規(guī)范
3、正則表達式中的特殊在字符
3.1、邊界符
正則表達式中的邊界符(位置符)用來提示字符所處的位置,主要有兩個字符

如果^ 和 $ 在一起,表示必須是精確匹配
3.2、字符類
字符類表示有一系列字符可供選擇,只要匹配其中一個就可以了
所有可供選擇的字符都放在方括號內(nèi)
①[] 方括號
后面的字符串只要包含?abc
?中任意一個字符,都返回true
②[-]方括號內(nèi)部 范圍符
方括號內(nèi)部加上?-?表示范圍,這里表示?a - z?26個英文字母都可以
③[^] 方括號內(nèi)部 取反符 ^
方括號內(nèi)部加上?^?表示取反,只要包含方括號內(nèi)的字符,都返回?false
注意和邊界符 ^ 區(qū)別,邊界符寫到方括號外面
④字符組合
方括號內(nèi)部可以使用字符組合,這里表示包含?a 到 z的26個英文字母和1到9的數(shù)字都可以
3.3、量詞符
量詞符用來設(shè)定某個模式出現(xiàn)的次數(shù)

3.4、用戶名驗證
功能需求:
如果用戶名輸入合法, 則后面提示信息為 : 用戶名合法,并且顏色為綠色
如果用戶名輸入不合法, 則后面提示信息為: 用戶名不符合規(guī)范, 并且顏色為綠色
分析:
1.用戶名只能為英文字母,數(shù)字,下劃線或者短橫線組成, 并且用戶名長度為 6~16位.
2.首先準備好這種正則表達式模式 /$[a-zA-Z0-9-_]{6,16}^/
3.當表單失去焦點就開始驗證.
4.如果符合正則規(guī)范, 則讓后面的span標簽添加 right 類.
5.如果不符合正則規(guī)范, 則讓后面的span標簽添加 wrong 類.
4、括號總結(jié)
大括號 量詞符 里面面表示重復(fù)次數(shù)
中括號 字符集合 匹配方括號中的任意字符
小括號 表示優(yōu)先級
在線測試正則表達式:https://c.runoob.com/
5、預(yù)定義類
預(yù)定義類指的是?某些常見模式的簡寫寫法

5.1、表單驗證
分析:
1.手機號碼:?/^1[3|4|5|7|8][0-9]{9}$/
2.QQ:?[1-9][0-9]{4,}
?(騰訊QQ號從10000開始)
3.昵稱是中文:?^[\u4e00-\u9fa5]{2,8}$
6、正則表達式中的替換
6.1、replace 替換
replace()
方法可以實現(xiàn)替換字符串操作,用來替換的參數(shù)可以是一個字符串或是一個正則表達式
第一個參數(shù): 被替換的字符串或者正則表達式
第二個參數(shù):替換為的字符串
返回值是一個替換完畢的新字符串
6.2、正則表達式參數(shù)
switch
按照什么樣的模式來匹配,有三種
g
: 全局匹配i
:忽略大小寫gi
: 全局匹配 + 忽略大小寫