正規表示式基礎知識整理

2022-03-03 18:07:58 字數 2789 閱讀 8470

rexexp型別:

1.建立方式:

(1)字面量方式:

var expression=/pattern/flags;

pattern部分可以是任何簡單或者複雜的正規表示式;

flags是3個標誌:

a.g全域性模式,即模式江北應用於所有的字串,而非再發現第乙個匹配項時候立即停止;

b.i不區分大小寫;

c.m多行模式,在到達文字末尾時還會繼續查詢下一行中是否存在與模式匹配的項;

如:/匹配以at結尾的3個字元的組合,不區分大小寫

var pat=/.at/gi;

正規表示式中的元字元:如果想要皮牌字串中包含元字元,都必須進行轉義;

([;(2)rexexp建構函式方式:

var pat=new rexexp('要匹配的字串模式','可選的標誌字串');由於rexexp建構函式的模式引數是字串,所有的元字元應進行雙重轉義;

字面量模式 等價的字串

/\[bc\]at/                   '\\[bc\\]at'

/\.at/                    '\\.at'

/name\age/     'name\\/age'

/\d.\d/       '\\d.\\d'

/\w\hello\\123/     '\\w\\hello\\\\123'

使用正規表示式字面量和使用rexexp建構函式建立的的正規表示式不一樣,正規表示式字面量時鐘會共享同乙個rexexp例項,而使用建構函式建立的每乙個新的rexexp例項都是乙個新例項;

如:

1

<

script

>

2var

rel=

null;3

for(

vari=0

;i<

10;i++)

7for

(vari=

0;i<

10;i

++)

11script

>

第乙個迴圈體中,只為rexexp只為/cat/建立了乙個rexexp例項,由於例項屬性不會重置,因為在迴圈中再次第哦啊用test()方法就會失敗;因為第一次呼叫已經找到了cat,第二次呼叫是從索引3開始的,所以找不到了,由於測試到了字串的末尾,所以下一次呼叫就從頭開始了;

第二個迴圈體中美音為此迭代都會建立乙個新的rexexp例項,因此每次呼叫test()都會返回true;

二,rexexp的例項屬性:

global:

ignorecase:

lastindex:整數,表示開始搜尋下乙個匹配項的字元位置,從0算起;

multiline:

source:正規表示式的字串表示,按照字面量形式而非傳入建構函式的字串模式返回;

1

<

script

>

2var

patten=/

\[bc\]at/i;

3alert(patten.global);

//false

4alert(patten.ignorecase);

//true;

5alert(patten.multiline);

//false

6alert(patten.lastindex);//0

7alert(patten.source);

//\[bc\]at

8script

>

三,rexexp的例項方法:

1.exec('要應用模式的字串');返回包含第乙個匹配項資訊的陣列,或在沒有匹配項的情況下返回null;返回的陣列是array的例項,包含兩個額外屬性:

index:表示匹配項在字串中的位置;

inpt:表示應用正規表示式的字串;

1

<

script

>

2var

text='

mom and dad and baby';

3var

pattern=/

mom(and dad(and baby)?)?

/gi;

4var

matches

=pattern.exec(text);

5console.log(matches.index);//0

6console.log(matches.input);

//mom and dad and baby

7console.log(matches[

0]);

//mom

8console.log(matches.input);

//mom and dad and baby

9script

>

2.test()方法:

接收乙個字串引數,在模式與該引數匹配的情況下返回true;

1

<

script

>

2var

text='

000-00-0000';

3var

pattern=/

\d-\d-\d/;

4if(pattern.test(text))

7script

>

rexexp例項繼承了toloaclstring()和tostring()方法,都會返回正規表示式的字面量,與建立正規表示式的方式無關;

rexexp的valueof()方法返回正規表示式本身;

正規表示式基礎知識

我們先從簡單的開始。假設你要搜尋乙個包含字元 cat 的字串,搜尋用的正規表示式就是 cat 如果搜尋對大小寫不敏感,單詞 catalog catherine sophisticated 都可以匹配。也就是說 1.1 句點符號 假設你在玩英文拼字遊戲,想要找出三個字母的單詞,而且這些單詞必須以 t ...

正規表示式基礎知識

乙個正規表示式就是由普通字元 例如字元 a 到 z 以及特殊字元 稱為元字元 組成的文字模式。該模式描述在查詢文字主體時待匹配的乙個或多個字串。正規表示式作為乙個模板,將某個字元模式與所搜尋的字串進行匹配。如 jscript vbscript 匹配 t t 匹配乙個空白行。d d d d 驗證乙個i...

正規表示式基礎知識

正規表示式基礎知識 正規表示式是一種可以用於模式匹配和替換的強有力的工具,乙個正規表示式就是由普通的字元 例如字元 a 到 z 以及特殊字元 稱為元字元 組成的文字模式,它描述在查詢文字主體時待匹配的乙個或多個字串。正規表示式作為乙個模板,將某個字元模式與所搜尋的字串進行匹配。正規表示式在字元資料處...