摘要:二常用字符串對(duì)象方法檢索與正則表達(dá)式相匹配的值,返回中第一個(gè)與相匹配的子串的起始位置,如果沒(méi)有找到返回方法不執(zhí)行全局匹配,它將忽略標(biāo)志。找到一個(gè)或多個(gè)正則表達(dá)式的匹配,返回匹配的字符串?dāng)?shù)組。替換與正則表達(dá)式匹配的子串。
作者:心葉
時(shí)間:2018-04-28 09:33
RegExpObject.exec(string)
檢索字符串中指定的值,如果匹配到,返回格式如下: { 0:"匹配的字符串", 1:"匹配的第一個(gè)元祖,如果有的話", 2:"以此類推,第二個(gè)元祖", ...... index:"匹配文本的第一個(gè)字符的位置", input:"輸入的匹配的原來(lái)字符串", length:"0,1,2,...的個(gè)數(shù)" } exec如果匹配不到,返回null。
重要事項(xiàng):完成了一次模式匹配之后檢索新的字符串前應(yīng)該手動(dòng)地把正則對(duì)象的lastIndex屬性重置為 0。
RegExpObject.test(string)
檢索字符串中指定的值,如果字符串 string 中含有與RegExpObject匹配的文本,則返回 true,否則返回 false。
二:常用字符串對(duì)象方法stringObject.search(regexp)
檢索與正則表達(dá)式相匹配的值,返回stringObject中第一個(gè)與regexp相匹配的子串的起始位置,如果沒(méi)有找到返回-1;search()方法不執(zhí)行全局匹配,它將忽略標(biāo)志 g。它同時(shí)忽略regexp的lastIndex屬性,并且總是從字符串的開(kāi)始進(jìn)行檢索,這意味著它總是返回stringObject的第一個(gè)匹配的位置。
stringObject.match(searchvalue|regexp)
找到一個(gè)或多個(gè)正則表達(dá)式的匹配,返回匹配的字符串?dāng)?shù)組。
stringObject.replace(regexp|substr,replacement|function)
替換與正則表達(dá)式匹配的子串。
溫馨提示:其中function傳遞進(jìn)去的是匹配的字符串,return返回的是最后替換成的,類似管道的寫(xiě)法。
stringObject.split(separator[,howmany])
把字符串分割為字符串?dāng)?shù)組,返回切割后的數(shù)組。
三:零寬斷言零寬,意味者不會(huì)返回匹配的字符;斷言,就是預(yù)測(cè)此處是什么。因此這是一種匹配不返回,只是猜測(cè)固定位置應(yīng)該是什么的存在。
3.1 匹配目標(biāo)的后面是exp:(?=exp)
比如現(xiàn)在需要匹配一個(gè)單詞是以ing結(jié)尾的,但是結(jié)尾的ing不捕獲,可以這樣使用:
//返回結(jié)果是["do", "heee"]。 "name-doing-text-heeeing".match(/([a-z]+(?=ing))/g);
3.2 匹配目標(biāo)的后面不是exp:(?!exp)
比如現(xiàn)在需要在一個(gè)單詞里面尋找一些字母,這些字母的下一個(gè)字母不可以是e,可以這樣使用:
//返回的結(jié)果是["d", "e", "a", "m"] "dream".match(/([a-z]{1}(?!e))/g);
3.3.(? <=exp)【 匹配exp后面的位置[親自測(cè)試JavaScript中不支持]】
3.4 "(?
如 "abc123 " 正則 "(? 四:懶惰限定符
1."*?"【重復(fù)任意次,但盡可能少重復(fù)】
//1-name-2 "1-name-2-name-2".match(/1.*?2/); //1-name-2-name-2 "1-name-2-name-2".match(/1.*2/);
2.+?【重復(fù)1次或更多次,但盡可能少重復(fù)】
3.??【重復(fù)0次或1次,但盡可能少重復(fù)】
4.{n,m}?【重復(fù)n到m次,但盡可能少重復(fù)】
5.{n,}?【重復(fù)n次以上,但盡可能少重復(fù)】
五:捕獲分組1.(exp)【匹配exp,并捕獲文本到自動(dòng)命名的組里】
2.(?
3.(?:exp)【匹配exp,不捕獲匹配的文本,也不給此分組分配組號(hào)】
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/94684.html
摘要:和均為非負(fù)整數(shù),其中。如果之前至少個(gè)獲取的子表達(dá)式,則為后向引用。 注:本文轉(zhuǎn)自 摘取天上星的博客 PHP常用正則表達(dá)式 ^d+$ //非負(fù)整數(shù)(正整數(shù)+ 0) ^[0-9]*[1-9][0-9]*$ //正整數(shù) ^((-d+)|(0+))$ //非正整數(shù)(負(fù)整數(shù)+ 0) ^-[0-9]*[1-9][0-9]*$ //負(fù)整數(shù) ^-?d+$ //整數(shù) ^d+(.d+)?$ ...
摘要:是決定正則表達(dá)式匹配規(guī)則的主要部分。二分隔符分隔符的選擇當(dāng)使用函數(shù)的時(shí)候,正則表達(dá)式必須由分隔符閉合包裹。果分隔符經(jīng)常在正則表達(dá)式內(nèi)出現(xiàn),最好使用其他分隔符來(lái)提高可讀性。需要將一個(gè)字符串放入正則表達(dá)式中使用時(shí),可以用函數(shù)對(duì)其進(jìn)行轉(zhuǎn)義。 一、簡(jiǎn)介 1. 什么是正則表達(dá)式 正則表達(dá)式(Regular Expression)就是用某種模式去匹配一類字符串的一種公式。正則表達(dá)式使用單個(gè)字符串來(lái)...
摘要:本文內(nèi)容共正則表達(dá)式火拼系列正則表達(dá)式回溯法原理學(xué)習(xí)正則表達(dá)式,是需要懂點(diǎn)兒匹配原理的。正則表達(dá)式迷你書(shū)問(wèn)世了讓幫你生成和解析參數(shù)字符串最全正則表達(dá)式總結(jié)驗(yàn)證號(hào)手機(jī)號(hào)中文郵編身份證地址等是正則表達(dá)式的縮寫(xiě),作用是對(duì)字符串執(zhí)行模式匹配。 JS 的正則表達(dá)式 正則表達(dá)式 一種幾乎可以在所有的程序設(shè)計(jì)語(yǔ)言里和所有的計(jì)算機(jī)平臺(tái)上使用的文字處理工具。它可以用來(lái)查找特定的信息(搜索),也可以用來(lái)查...
摘要:正則表達(dá)式重新整理學(xué)習(xí),為了加深印象,發(fā)現(xiàn)了之前遺漏的一個(gè)非常重要的知識(shí)點(diǎn)優(yōu)先選擇最左端的匹配結(jié)果,這個(gè)規(guī)則上創(chuàng)建正則的方式直接字面量的創(chuàng)建通過(guò)雙斜杠,在中間添加匹配的規(guī)則,這樣就是一個(gè)正則表達(dá)式了通過(guò)構(gòu)造函數(shù)創(chuàng)建通過(guò)構(gòu)造函數(shù)來(lái)創(chuàng)建正則對(duì)象 正則表達(dá)式 重新整理學(xué)習(xí),為了加深印象,發(fā)現(xiàn)了之前遺漏的一個(gè)非常重要的知識(shí)點(diǎn)優(yōu)先選擇最左端的匹配結(jié)果,這個(gè)規(guī)則 js上創(chuàng)建正則的方式 直接字面...
摘要:對(duì)前端來(lái)說(shuō),使用的場(chǎng)景不多,但是像微信端的對(duì)話系統(tǒng)的表情包,就使用到了一個(gè)特定的規(guī)則。我是一個(gè)前端,工作年了,現(xiàn)在失業(yè),想進(jìn)入騰訊工作,這是我的聯(lián)系方式這個(gè)正則雖 我發(fā)現(xiàn)有個(gè)別字符被這個(gè)編輯器給刷掉了,但是灰色區(qū)域顯示正常,以灰色區(qū)域代碼為準(zhǔn) 什么玩意? 在我剛開(kāi)始學(xué)習(xí)編程的時(shí)候,就聽(tīng)過(guò)正則了,也聽(tīng)說(shuō)正則很牛逼,懂正則的更牛逼。但是苦于沒(méi)有人指點(diǎn),也沒(méi)有使用正則的場(chǎng)景,自己看教程又懵逼...
閱讀 1066·2021-11-24 09:39
閱讀 3603·2021-11-22 13:54
閱讀 2562·2021-10-11 10:59
閱讀 803·2021-09-02 15:40
閱讀 1038·2019-08-30 15:55
閱讀 1057·2019-08-30 13:57
閱讀 2317·2019-08-30 13:17
閱讀 3037·2019-08-29 18:32