正規表示式基本概念

2021-09-13 22:26:23 字數 4681 閱讀 7416

引用文字
正規表示式是乙個描述字元模式的物件。主要用來驗證客戶端的輸入資料,使用者填寫完表單資訊提交後,就會傳遞給後台伺服器,伺服器會通過php等後台指令碼進行處理,因為客戶端驗證,節約了大量的伺服器資源,並提供了良好的使用者體驗。

建立正規表示式有兩種方法:

使用regexp構建函式接收兩個引數:乙個是要匹配的字串,乙個是模式修飾符(可選)

var pattern = new regexp('box');字面量方式建立,直接使用兩個斜槓。在第二個斜槓後面加上模式修飾符(可選)

var pattern = /box/ flags;//兩個斜槓和box之間不能有空格

模式修飾符的可選引數:

引數含義g

全域性模式(global)

i不區分大小寫(case-insensitive)

m多行模式(multiline)

exct()接收乙個引數,該引數和模式匹配,把模式作為陣列返回;未匹配到返回null

test()接收乙個引數,該引數和模式匹配,返回true,否則返回false

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

方法含義match(pattern)返回匹配到模式中的字串或null

replace(pattern,replacement)replacement替換pattern

search(pattern)返回字串中pattern開始的位置

split(pattern)返回用空格拆分的陣列

例:

var pattern = /box/ig;

var str = "this is box! this is box!";

alert(str.match(pattern)); //box box

開啟全域性模式,將所有匹配的字串組合成陣列;

未開啟全域性模式,匹配到第乙個字串就返回。

var pattern = /box/ig;

var str = "this is box! this is box!";

alert(str.replace(pattern,'tom')); //this is box! this is box!

開啟全域性模式,將匹配到的字串全部替換掉;

未開啟全域性模式,只替換掉第乙個查詢到的字串。

var pattern = /box/i;

var str = "this is box! this is box!";

alert(str.search(pattern)); //8

查詢返回的位置:查到返回對應的位置,未查到返回-1;無需全域性模式。

var pattern = / /i;

var str = "this is box! this is box!";

alert(str.split(pattern));

返回用空格拆分的陣列

regexp物件的靜態屬性:

屬性短名含義

input

$_當前被匹配的字串

lastmatch

$&最後乙個匹配字串

lastparen

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

leftcontext

$`最後一次匹配前的字串

multiline

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

rightcontext

$'最後一次匹配之後的字串

所有的屬性都可以用短名來操作,其中$_可以用點表示法來操作,其他都不可以。

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

字元類:單個字元和數字

元字元/元符號

匹配情況

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

[a-za-z0-9]

匹配方括號中任意字元

1匹配不是方括號中任意字元

d匹配任意數字和[0-9]相同

d匹配非數字和2

相同1w

匹配字母和數字及_

w匹配非字母和數字及_

字元類:空白字元

元字元/元符號

匹配情況

0匹配null字元

b匹配空格字元

f匹配進紙字元

n匹配換行符

r匹配回車字元

t匹配製表符

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

s匹配非空白字元

字元類:替代字元

元字元/元符號

匹配情況

this\

where\

logo

匹配 this 或 where 或 logo 中任意乙個,`

`必須用分組符號包含起來

字元類:錨字元

元字元/元符號

匹配情況

^行首匹配

$行尾匹配

a只有匹配字串開始處

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

b匹配非單詞邊界

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

z匹配字串結束處或行尾

z只匹配字串結束處

字元類:重複字元

元字元/元符號

匹配情況

x?匹配0個或1個x

x*匹配0個或1個或多個x

x+匹配1個或多個x

(xyz)+

匹配至少乙個(xyz)

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

字元類:替代字元

元字元/元符號

匹配情況

(string)

分組表示乙個字元,用圓括號表示

1 或$1

匹配第乙個分組中的內容

2 或$2

匹配第二個分組中的內容

3 或$3

匹配第三個分組中的內容

貪婪是盡可能多的匹配內容,惰性(非貪婪)這是盡可能少的匹配內容

貪婪是從結尾開始匹配,惰性(非貪婪)是從開頭開始匹配

貪婪惰性++?

???**?

??? 下面例子匹配8和8中的內容,把他替換成qq

var pattern = /8(.+?)8/g; 

var str = 'this is 8google8, that is 8google8, there is 8google8';

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

document.write(result);

輸出結果:this is qq, that is qq, there is qq

錯誤匹配:8google, that is 8換成qq,google不變,8, there is 8替換成qqgoogle8不變,就是我們看到的結果。

var pattern = /8(.+?)8/g; 

var str = 'this is 8google, that is 8google8, there is 8google8';

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

document.write(result);

輸出結果:this is qqgoogleqqgoogle8

錯誤匹配:8google8換成qq,google不變,8, that is 8替換成qqgoogle不變,8, there is 8替換成qqgoogle8不變,就是我們看到的結果。

var pattern = /8(.+?)8/g; 

var str = 'this is 8google8google8, that is 8google8, there is 8google8';

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

document.write(result);

輸出結果:this is qqgoogleqqgoogleqqgoogle8

a-za-z0-9 ↩

0-9 ↩

正規表示式基本概念

正規表示式是乙個描述字元模式的物件。主要用來驗證客戶端的輸入資料,使用者填寫完表單資訊提交後,就會傳遞給後台伺服器,伺服器會通過php等後台指令碼進行處理,因為客戶端驗證,節約了大量的伺服器資源,並提供了良好的使用者體驗。建立正規表示式有兩種方法 使用regexp構建函式接收兩個引數 乙個是要匹配的...

正規表示式的基本概念

第一次寫部落格,記錄一下學習linux的過程啦 主要內容來自mooc上的 linux開發環境及應用 正規表示式可以用來描述乙個字串模式 可以匹配任意單字元 可匹配0次或任意多次 如 12 4 可以匹配124,1224,124 2的次數任意 a z 0 9 可以匹配a1,b65,e4657 數字次數任...

正規表示式的基本概念和語法

正規表示式,又稱正規表示法 常規表示法 英語 regular expression,在 中常簡寫為regex regexp或re 電腦科學的乙個概念。正規表示式使用單個字串來描述 匹配一系列符合某個句法規則的字串。字母 數字 下劃線 漢字以及沒有特殊定義的標點符號,都是普通字元。表示式中的普通字元,...