正規表示式

2021-09-25 03:46:54 字數 4471 閱讀 2712

一:什麼是正規表示式

正規表示式是對字串操作的一種邏輯公式,就是用事先定義好的一些特定字元、及這些特定字元的組合,組成乙個「規 則字串」,這個「規則字串」用來表達對字串的一種過濾邏輯。

二:建立正規表示式

1.

使用new運算子建立

var box =regexp('box'); //第乙個引數字串

var box =regexp('box','gi'); //第二個引數可選模式修飾符

採用字面量方式

var box =/box/;

var box =/box/gi;

模式修飾符的可選引數:

引數含義

i忽略大小寫

g全域性匹配

m多行匹配

2.測試正規表示式

regexp物件的方法:

方法功能

test

在字串中測試模式匹配,返回true或false

exec

在字串中執行匹配搜尋,返回結果陣列

使用new運算子的test方法例項:

var pattern =new regexp('box','i'); 				//建立正則模式,不區分大小寫

var str='this is a box!';

alert(pattern.test(str)); //返回true

使用一條語句實現正則匹配:

alert(/box/i.test('this is a box!'));
使用exec返回匹配陣列:

var pattern =/box/i; 				

var str='this is a box!';

alert(pattern.exec(str)); //匹配了返回陣列否則返回null

3.使用字串中的正則表達試方法

string物件中的正規表示式方法

方法含義

match(pattern)

返回pattern中的子串或null

replace(pattern,replacement)

用replacement替換pattern

search(pattern)

返回字串中pattern開始位置

split(pattern)

返回字串按指定拆分的陣列

使用match方法獲取匹配陣列

var pattern =/box/i;

var str='this is a box!, this is a box too';

alert(str.match(pattern));

使用search來查詢匹配資料

var pattern =/box/i;

var str='this is a box!, this is a box too';

alert(str.search(pattern));

使用replace替換匹配到的資料

var pattern =/box/ig;

var str='this is a box!, this is a box too';

alert(str.replace(pattern,'pox'));

使用split拆分成字串陣列

var pattern =/box/ig;

var str='this is a box!, this is a box too';

alert(str.split(pattern));

4.正規表示式物件的靜態屬性

屬性短名

含義input

$_當前被匹配的字串

lastmatch

$&最後乙個匹配字串

lastparen

$+最後一對圓括號內的匹配子串

leftcontext

$ 『最後一次匹配前的子串

multiline

$*用於指定是否所有的表示式 都用於多行的布林值

rightcontext

$』在上次匹配之後的字串

5.正規表示式物件的例項屬性

屬性含義

global

boolen值,表示g是否已設定

ignorecase

boolen值,表示i是否已設定

lastindex

整數,代表下次匹配位置將從**字元位置開始

multiline

boolen值,表示m是否已設定

source

正規表示式的源字串形式

三:獲取控制

正規表示式的元字元是包含特殊含義的字元。他們有一些特殊功能,可以控制匹配模式的方式,反斜槓後的元字元將失去其特殊含義。

字元類:單個字元和數字
元字元/元符號

匹配情況

.匹配除換行符外的任意字元

【a-z0-9】

匹配括號字符集中的任意字元

【^a-z0-9】

匹配任意不在括號字符集中的字元

\d匹配數字

\d匹配非數字,即【^0-9】

\w匹配字母數字和斜槓

\w匹配非字母數字和斜槓

字元類:空白字元
元字元/元符號

匹配情況

\0匹配null字元

\b匹配空格字元

\f匹配進紙字元

\n匹配換行符

\r匹配回車字元

\t匹配製表符

\s匹配空白字元,空格,製表符和換行符

\s匹配非空白字元

字元類:錨字元
元字元/元符號匹配^

行首匹配

$行尾匹配

\a只匹配字串的開始處

\b匹配單詞邊界,詞在【】內時無效

\b匹配非單詞邊界

\g匹配當前搜尋的開始位置

\z匹配字串結束處或行尾

\z只匹配字串結束處

字元類:重複字元
元字元/元符號

匹配情況

x?匹配0個或乙個x

x*匹配0個或任意多個x

x+匹配至少乙個x

(xyz)+

匹配至少乙個(xyz)

x匹配最少m個,最多n個x

字元類:替代字元
元字元/元符號

匹配情況

this\where\logo

匹配 this,where,logo中的任意乙個

字元類:記錄字元
元字元/元符號

匹配情況

(string)

用於反向引用的分組

\1或$1

匹配第乙個分組中的內容

\2或$2

匹配第乙個分組中的內容

\3或$3

匹配第乙個分組中的內容

四:常用的正則

var pattern=/^[1-9][0-9]$/; //行首行尾嚴格匹配

var str='this is 240000';

alert(pattern.test(str));

2.檢查檔案壓縮包

var pattern=/[\w]+\.zip|gz|rar/;   // \為轉義字元, 把\.轉義成實際意義上的.

var str='678.zip';

alert(pattern.test(str));

3.刪除多餘空格

var pattern=/\s/g;

var str='11 22 33 44 55';

alert(str.replace(pattern,''));

4.刪除首尾空格

var pattern=/^\s+/;

var str=' goo gle ';

var result=str.replace(pattern,'');

pattern=/\s+$/;

result=result.replace(pattern,'');

alert(result);

5.簡單的電子郵件驗證

var pattern=/^([\w\_\.]+)@([\w\_]+)\.[a-za-z]$/;

var str='[email protected]';

alert(pattern.test(str));

正規表示式 正規表示式 總結

非負整數 d 正整數 0 9 1 9 0 9 非正整數 d 0 負整數 0 9 1 9 0 9 整數 d 非負浮點數 d d 正浮點數 0 9 0 9 1 9 0 9 0 9 1 9 0 9 0 9 0 9 1 9 0 9 非正浮點數 d d 0 0 負浮點數 正浮點數正則式 英文本串 a za z...

正規表示式 表示式

網域名稱 a za z0 9 a za z0 9 a za z0 9 a za z0 9 interneturl a za z s 或 http w w w 手機號碼 13 0 9 14 5 7 15 0 1 2 3 5 6 7 8 9 18 0 1 2 3 5 6 7 8 9 d 號碼 x x x...

Linux正規表示式 編寫正規表示式

為了所有實用化的用途,你可以通過使用程式產生正確的結果。然而,並不意味著程式總是如你所願的那樣正確地工作。多數情況下,如果程式不能產生想要的輸出,可以斷定真正的問題 排除輸入或語法錯誤 在於如何描述想要的東西。換句話說,應該考慮糾正問題的地方是描述想要的結果的表示式。表示式不完整或者公式表示得不正確...