了解正規表示式

2021-10-17 03:05:45 字數 2915 閱讀 9711

正規表示式(regular expression)是乙個描述字元模式的物件。

正規表示式能夠進行強大的「模式匹配」和「文字檢索與替換」功能。前端往往有大量的表單資料校驗的工作,採用正規表示式會使得資料校驗的工作量大大減輕

建立正規表示式

regexp建構函式宣告

第乙個引數就是我們的模式「字串」

var reg=

newregexp

('katsuki'

)//使用特殊字元,\轉義

var reg=

newregexp

('\\d\\w+'

); \d\w+

第二個引數可選,模式修飾符

i:

case

-insensitive,表示忽略大小寫

g: global,表示全域性匹配

m: multiline,表示多行匹配

var reg =

newregexp

('katsuki'

,'ig'

)

字面量方式直接宣告

var reg =

/katsuki/gi

;

直接量是字元匹配,不支援變數

支援正規表示式的字串方法

search

返回第一次匹配時所在的索引值,如果匹配不到則返回-1

match

預設匹配字串,返回乙個陣列

0:所匹配的字元

index:匹配第乙個字元所在的索引

input:對字串的引用

'katsuki'

.match

(/katsuki/

)

全域性匹配g,返回乙個匹配所有字串陣列

如果匹配不到則返回null

'katsuki'

.match

(/k/g

)

replace

替換字串

'katsuki'

.replace

(/katsuki/

,"katsukichan"

)

split

按照匹配的方式分割

'katsuki age 18   666'

.split

(/\s+/

)

測試正規表示式用test方法,返回布林值

格式:正規表示式.test(字串)

用正規表示式測試字串是否匹配,返回true/false

測試正規表示式exec方法

/katsuki/

.exec

(字串)

所有字母和數字都是按照字面量進行匹配,和字串匹配等效

/katsuki/gi
.

: 除換行以外的字元

\w : 代表數字或字母或下劃線

\w: 非數字字母和下劃線字元

\d : 數字

\d: 非數字

\s : 代表乙個空格

\s: 空格以外的字元

\b : 匹配乙個單詞邊界,也就是指單詞和空格間的位置

\b: 匹配非單詞邊界。

ps:以上所有字元類都只是匹配 乙個 字元

^ $ .*+

?=!:

| \ /()

: 代表任意「單個字元」 ,裡面的內容表示「或」的關係

-: 代表範圍

^: 代表非

[^]

,^在[

]裡才表示非

(): 表示分組(n是以最左邊括號出現的順序排列)

$1: 表示第乙個分組

$n: 表示第n個分組(不能寫在正規表示式裡)

\n: 在正則分組後面使用,表示對第n個分組的引用(一定要寫在正規表示式裡)

編寫的正則分組數量越少越好

|: 表示或者

分組說明案例

//小括號裡有?:代表取消分組,

$reg =

'/\[((?:\d+\.)\d+)\]/'

;//無?:,分組正常\1表示呼叫第乙個小括號內容(\d+\.)\d+)

$reg2 =

'/\[((\d+\.)\d+)\1\]/'

;

^: 表示以什麼開頭

$: 表示以什麼結尾

*

: 代表0個或0個以上 <=

==>

+: 代表1個或1個以上 <=

==>

?: 代表0個或1個 <=

==>

\d

: 匹配5個數字

\d: 匹配5個到10個數字

\d: 匹配5個或5個以上的數字

ps:

1)數量詞*,+,,會盡可能多的去匹配結果(貪婪)

2)在後面加乙個?表示盡可能少的去匹配結果(非貪婪)

加粗樣式

var str =

'aaaaaabbb'

;str.

match

(/a?/g);

//輸出最少的a 即乙個a

了解正規表示式

摘要 相信大家都聽說過正規表示式,用它可以在字段中進行高速查詢 替換等功能。使用正規表示式可以輕鬆的對文字進行控制。比如,如果您想知道乙個字串的數字表示式是否在 0.1 9.9 之間 注意,只有一位小數 您會用什麼方法辦到這個需求呢?我想您會乙個 char 乙個char 的檢測,這樣會很麻煩,需要很...

了解正規表示式

元字元 表示的是 或者 表示的是 分組 提公升優先順序 都是元字元,下面這些也可以叫限定符 限定前面的表示式出現的次數 表示的是 前的表示式出現了0次到1次,最少是0次,最多1次,另乙個含義 阻止貪婪模式 表示的是 更加明確前面的表示式出現的次數 表示的是以 開始,或者是取非 取反 表示的是以 結束...

幫你了解正規表示式

00 d 可以匹配 007 但無法匹配 00a d d d 可以匹配 010 w w d 可以匹配 py3 可以匹配任意字元,所以 py.可以匹配 pyc pyo py 等等。要匹配變長的字元,在正規表示式中,用 表示任意個字元 包括0個 用 表示至少乙個字元,用?表示0個或1個字元,用表示n個字元...