正則表達(dá)式相關(guān)方法

五個(gè)屬性
  • global:是否全局搜索,默認(rèn)是false
  • ignoreCase:是否大小寫敏感售葡,默認(rèn)是false
  • multiline:多行搜索,默認(rèn)值是false
  • lastIndex:是當(dāng)前表達(dá)式模式首次匹配內(nèi)容中最后一個(gè)字符的下一個(gè)位置丛晦,每次正則表達(dá)式成功匹配時(shí)洼怔,lastIndex屬性值都會(huì)隨之改變
  • source:正則表達(dá)式的文本字符串
兩個(gè)常用方法
  • RegExp.prototype.test(str)
    方法用于測(cè)試字符串參數(shù)中是否存在正則表達(dá)式模式,如果存在返回true又官,否則返回false
  • RegExp.prototype.exec(str)
    方法用于正則表達(dá)式模式在字符串中運(yùn)行查找延刘,如果exec()找到了匹配的文本,則返回一個(gè)結(jié)果數(shù)組六敬,否則返回null碘赖。
    除了數(shù)組元素和length屬性之外,exec()方法返回對(duì)象還包括兩個(gè)屬性外构。
  1. index屬性聲明的是匹配文本的第一個(gè)字符位置
  2. input屬性則存放的是被檢索的字符串
String.prototype.search(reg)

seatch()方法用于檢索字符串中指定的子字符串普泡,或檢索與正則表達(dá)式相匹配的子字符串
search()方法不執(zhí)行全局匹配,它將忽略標(biāo)志g审编,它同時(shí)忽略正則表達(dá)式對(duì)象的lastIndex屬性撼班,并總是從字符串的開始進(jìn)行檢索,這意味著它總是返回字符串的第一個(gè)匹配位置

'a1b2c3'.search(/\d/g); //1
'a1b2c3'.search(/\d/); //1
String.prototype.match(reg)

match()方法將檢索字符串垒酬,以找到一個(gè)或多個(gè)與regexp匹配的文本砰嘁,但regexp是否具有標(biāo)志g對(duì)結(jié)果影響很大眯亦。

  • 非全局調(diào)用:
    如果regexp沒有標(biāo)志g,那么match()方法就只能在字符串中執(zhí)行一次匹配般码,如果沒有找到任何匹配的文本妻率,match將返回null。否則他將返回一個(gè)數(shù)組板祝,其中存放了與它找到的匹配文本有關(guān)的信息宫静。
    該數(shù)組的第一個(gè)元素存放的是文本,而其余的元素存放的是與正則表達(dá)式的子表達(dá)式匹配的文本券时。除了這些常規(guī)的數(shù)組元素之外孤里,返回的數(shù)組還含有兩個(gè)對(duì)象屬性
  1. index屬性聲明的是匹配文本的起始字符在字符串中的位置
  2. input屬性聲明的是對(duì)stringObject的引用
  • 全局調(diào)用
    如果regexp具有標(biāo)志g則match()方法將執(zhí)行全局檢索,找到字符串中的所有匹配子字符串
    若沒有找到任何匹配的子串橘洞,則返回 null捌袜。如果找到了一個(gè)或多個(gè)匹配子串,則返回一個(gè)數(shù)組
    不過全局匹配返回的數(shù)組的內(nèi)容與前者大不相同炸枣,它的數(shù)組元素中存放的是字符串中所有的匹配子串虏等,而且也沒有index屬性或input屬性适肠。
String.prototype.replace(reg, replaceStr)

關(guān)于string對(duì)象的replace方法霍衫,我們最常用的是傳入兩個(gè)字符串的做法,但這種做法有個(gè)缺陷侯养,只能replace一次

'abcabcabc'.replace('bc','X'); //aXabcabc

replace方法的第一個(gè)參數(shù)還可以傳入RegExp對(duì)象逛揩,傳入正則表達(dá)式可以使replace方法更加強(qiáng)大靈活

'abcabcabc'.replace(/bc/g,'X'); //aXaXaX
'abcaBcabC'.replace(/bc/gi,'X'); //aXaXaX
String.prototype.replace(reg, function)

可以通過修改replace方法的第二個(gè)參數(shù)惧笛,使replace更加強(qiáng)大搂誉,在前面的介紹中徐紧,只能把所有匹配替換為固定內(nèi)容,但如果我希望把一個(gè)字符串中所有數(shù)字炭懊,都用小括號(hào)包起來該怎么弄

'2398rufdjg9w45hgiuerhg83ghvif'.replace(/\d+/g,function(r){
    return '('+r+')';
}); //"(2398)rufdjg(9)w(45)hgiuerhg(83)ghvif"

把replace方法的第二個(gè)參數(shù)傳入一個(gè)function,這個(gè)function會(huì)在每次匹配替換的時(shí)候調(diào)用拂檩,算是個(gè)每次替換的回調(diào)函數(shù)侮腹,我們使用了回調(diào)函數(shù)的第一個(gè)參數(shù),也就是匹配內(nèi)容稻励,其實(shí)回調(diào)函數(shù)一共有四個(gè)參數(shù)

  • 第一個(gè)參數(shù)很簡(jiǎn)單父阻,是匹配字符串
  • 第二個(gè)參數(shù)是正則表達(dá)式分組內(nèi)容愈涩,沒有分組則沒有該參數(shù)
  • 第三個(gè)參數(shù)是匹配項(xiàng)在字符串中的index
  • 第四個(gè)參數(shù)則是原字符串
String.prototype.split(reg)

我們經(jīng)常使用split方法把字符串分割為字符數(shù)組

'a,b,c,d'.split(','); //["a", "b", "c", "d"]

和replace方法類似,在一些復(fù)雜的分割情況下我們可以使用正則表達(dá)式解決

'a1b2c3d'.split(/\d/); //["a", "b", "c", "d"]
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末加矛,一起剝皮案震驚了整個(gè)濱河市履婉,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌斟览,老刑警劉巖毁腿,帶你破解...
    沈念sama閱讀 219,427評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異苛茂,居然都是意外死亡已烤,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,551評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門妓羊,熙熙樓的掌柜王于貴愁眉苦臉地迎上來胯究,“玉大人,你說我怎么就攤上這事躁绸≡Q” “怎么了?”我有些...
    開封第一講書人閱讀 165,747評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵净刮,是天一觀的道長(zhǎng)费韭。 經(jīng)常有香客問我,道長(zhǎng)庭瑰,這世上最難降的妖魔是什么星持? 我笑而不...
    開封第一講書人閱讀 58,939評(píng)論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮弹灭,結(jié)果婚禮上督暂,老公的妹妹穿的比我還像新娘。我一直安慰自己穷吮,他們只是感情好逻翁,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,955評(píng)論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著捡鱼,像睡著了一般八回。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上驾诈,一...
    開封第一講書人閱讀 51,737評(píng)論 1 305
  • 那天缠诅,我揣著相機(jī)與錄音,去河邊找鬼乍迄。 笑死管引,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的闯两。 我是一名探鬼主播褥伴,決...
    沈念sama閱讀 40,448評(píng)論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼谅将,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了重慢?” 一聲冷哼從身側(cè)響起饥臂,我...
    開封第一講書人閱讀 39,352評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎似踱,沒想到半個(gè)月后隅熙,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,834評(píng)論 1 317
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡屯援,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,992評(píng)論 3 338
  • 正文 我和宋清朗相戀三年猛们,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片狞洋。...
    茶點(diǎn)故事閱讀 40,133評(píng)論 1 351
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡弯淘,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出吉懊,到底是詐尸還是另有隱情庐橙,我是刑警寧澤,帶...
    沈念sama閱讀 35,815評(píng)論 5 346
  • 正文 年R本政府宣布借嗽,位于F島的核電站态鳖,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏恶导。R本人自食惡果不足惜浆竭,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,477評(píng)論 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望惨寿。 院中可真熱鬧邦泄,春花似錦、人聲如沸裂垦。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,022評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽蕉拢。三九已至特碳,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間晕换,已是汗流浹背午乓。 一陣腳步聲響...
    開封第一講書人閱讀 33,147評(píng)論 1 272
  • 我被黑心中介騙來泰國(guó)打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留届巩,地道東北人硅瞧。 一個(gè)月前我還...
    沈念sama閱讀 48,398評(píng)論 3 373
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像恕汇,于是被迫代替她去往敵國(guó)和親腕唧。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,077評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容