摘要:在不設(shè)置全局標(biāo)志的情況下,在同一個字符創(chuàng)上多次調(diào)用將始終返回第一個匹配項(xiàng)的信息。
字面量定義正則表達(dá)式
ECMAScript通過RegExp類型來支持正則表達(dá)式
var expression = / pattern / flags:模式(pattern)部分可以是任何簡單或復(fù)雜的正則表達(dá)式,標(biāo)志(flag)部分用來標(biāo)明正則表達(dá)式的匹配模式
正則表達(dá)式的匹配模式支持下列3個標(biāo)志:
g:表示全局模式,即模式會被應(yīng)用于所有字符串,而非在發(fā)現(xiàn)第一個匹配項(xiàng)時立即停止
i:表示不區(qū)分大小寫模式
m:表示多行模式,即在到達(dá)一行文本末尾時還會繼續(xù)查找下一行中是否存在與模式匹配的項(xiàng)
正則表達(dá)式:
d: 等價于[0-9],表示數(shù)字字符
w: 等價于[a-zA-Z_0-9],表示字母,數(shù)字,下劃線
s: 等價于[ x0Bf ],表示空白符
[a-zA-Z0-9]: 表示大小寫字母和數(shù)字
: 表示單詞邊界,單詞邊界就是單詞和符號之間的邊界,這里的單詞可以是中文字符,英文字符,數(shù)字;符號可以是中文符號,英文符號,空格,制表符,換行
.: 等價于[^ ],表示除了回車和換行符之外的所有字符
*: 表示出現(xiàn)零次或多次
+: 表示出現(xiàn)一次或多次
?: 表示出現(xiàn)零次或一次
x{3}: 表示x出現(xiàn)3次
^: 表示以XXX開頭
$: 表示以XXX結(jié)尾
使用構(gòu)造函數(shù)創(chuàng)建正則表達(dá)式var pattern = new RegExp("[bc]at", "i");
RegExp構(gòu)造函數(shù)接受兩個參數(shù):一個是要匹配的 字符串模式(注意不是字面量),兩一個是可選的標(biāo)志字符串
常用方法:
pattern.exec(str):
對于exec()方法而言,即使在模式中設(shè)置了全局標(biāo)志(g),它每次也只會返回一個匹配項(xiàng)。在不設(shè)置全局標(biāo)志的情況下,在同一個字符創(chuàng)上多次調(diào)用exec()將始終返回第一個匹配項(xiàng)的信息。而在設(shè)置全局標(biāo)志的情況下,每次調(diào)用exec()則會在字符串中繼續(xù)查找新匹配項(xiàng)。
exec()方法返回一個對象,擁有兩個屬性:index和input,index表示匹配項(xiàng)在字符串中的位置,input表示應(yīng)用正則表達(dá)式的字符串
pattern.test(str):
在模式與該參數(shù)匹配的情況下返回true,否則返回false
String類型也可以利用正則表達(dá)式來實(shí)現(xiàn)相應(yīng)的功能:match方法:
var text = "cat, bat, sat, fat"; var pattern = /.at/; text.match(pattern); // 無論執(zhí)行多少次,都只會返回 ["cat"] var pattern = /.at/g; text.match(pattern); // 返回 ["cat", "bat", "sat", "fat"]
replace方法:
var text = "cat, bat, sat, fat"; var pattern = /.at/; text.replace(pattern, "skt"); // 無論執(zhí)行多少次,都只會返回 "skt, bat, sat, fat" var pattern = /.at/g; text.replace(pattern, "skt"); // 無論執(zhí)行多少次,都只會返回 "skt, skt, skt, skt"
search方法:返回字符串第一個匹配項(xiàng)的索引
var text = "cat, bat, sat, fat"; var pattern = /.at/; text.search(pattern); // 無論執(zhí)行多少次,都只會返回 0 var pattern = /.at/g; text.search(pattern); // 無論執(zhí)行多少次,都只會返回 0
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/83349.html
摘要:首先來看一個例子我們知道基本數(shù)據(jù)類型有還有一種復(fù)雜數(shù)據(jù)類型基本類型不是對象從邏輯上講是不應(yīng)該有方法的其實(shí)為了讓我們能夠?qū)M(jìn)行相關(guān)操作后臺已經(jīng)自動完成了一系列的處理當(dāng)?shù)诙写a訪問時訪問過程處于一種讀取模式也就是從內(nèi)存中讀取這個字符串的值而在 首先來看一個例子 var s1 = some text; var s2 = s1.substring(2); var s3 = new Strin...
摘要:方法將所有在過濾函數(shù)中返回的數(shù)組元素放進(jìn)一個新數(shù)組中并返回。方法從左到右為每個數(shù)組元素執(zhí)行一次回調(diào)函數(shù),并把上次回調(diào)函數(shù)的返回值放在一個暫存器中傳給下次回調(diào)函數(shù),并返回最后一次回調(diào)函數(shù)的返回值。 創(chuàng)建數(shù)組 var array = new Array(); var array = new Array(10); var array = new Array(red,blue,green);...
摘要:是一個類數(shù)組對象,包含著傳入函數(shù)中的所有參數(shù)。雖然的主要用途是保存函數(shù)參數(shù),但是這個對象還有一個名叫的屬性,該屬性是一個指針,指明擁有這個對象的函數(shù)。 arguments arguments是一個類數(shù)組對象,包含著傳入函數(shù)中的所有參數(shù)。雖然arguments的主要用途是保存函數(shù)參數(shù),但是這個對象還有一個名叫callee的屬性,該屬性是一個指針,指明擁有這個arguments對象的函數(shù)。...
摘要:引用計(jì)數(shù)另一種不太常見的垃圾回收策略是引用計(jì)數(shù)。引用計(jì)數(shù)的含義是跟蹤記錄每個值被引用的次數(shù)。在采用引用計(jì)數(shù)的策略中,由于函數(shù)執(zhí)行之后,這兩個對象都離開了作用域,函數(shù)執(zhí)行完成之后,和還將會繼續(xù)存在,因?yàn)樗麄兊囊么螖?shù)永遠(yuǎn)不會是。 垃圾回收的必要性 由于字符串、對象和數(shù)組沒有固定大小,所以當(dāng)他們的大小已知時,才能對他們進(jìn)行動態(tài)的存儲分配。JavaScript程序每次創(chuàng)建字符串、數(shù)組或?qū)ο髸r...
正則表達(dá)式對象方法 test方法 var regexp1 = /a/g; var regexp2 = /a/; var str = abcd; regexp1.test(str); true regexp1.test(str); false regexp1.test(str); true regexp2.test(str); true regexp2.test(str); true 當(dāng)正則表示式是...
閱讀 2469·2021-11-23 09:51
閱讀 1876·2021-10-13 09:40
閱讀 1396·2021-09-30 10:01
閱讀 602·2021-09-26 09:46
閱讀 2261·2021-09-23 11:55
閱讀 1405·2021-09-10 10:51
閱讀 2271·2021-09-09 09:33
閱讀 2238·2019-08-29 17:25