引用文字正規表示式是乙個描述字元模式的物件。主要用來驗證客戶端的輸入資料,使用者填寫完表單資訊提交後,就會傳遞給後台伺服器,伺服器會通過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
替換成qq
,google8
不變,就是我們看到的結果。
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
替換成qq
,google
不變,8, there is 8
替換成qq
,google8
不變,就是我們看到的結果。
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 電腦科學的乙個概念。正規表示式使用單個字串來描述 匹配一系列符合某個句法規則的字串。字母 數字 下劃線 漢字以及沒有特殊定義的標點符號,都是普通字元。表示式中的普通字元,...