四虎精品视频-四虎精品成人免费网站-四虎黄色网-四虎国产视频-国产免费91-国产蜜臀97一区二区三区

JavaScript 核心參考教程 RegExp對象

  1. 正則表達式的直接量字符
    字符 匹配
    字母數(shù)字字符 本身
    /o NUL字符(/u0000)
    /t 制位表(/u0009)
    /n 換行符(/u000A)
    /v 垂直制位表(/u000B)
    /f 換頁符(/u000C)
    /r 回車(/u000D)
    /xnn 由十六進制數(shù)nn指定的拉丁字符,例如/u0A等價于/n
    /uxxxx 由十六進制數(shù)xxxx指定的Unicode字符,例如/u0009等價于/t
    /cX 控制字符X,例如,/cJ等價于/n
  2. 正則表達式的字符類
    字符 匹配
    [...] 位于括號內(nèi)的任意字符
    [^...] 不在括號之中的任意字符
    . 除換行符和其他Unicode行中止符之外的任意字符
    /w 任何ASCII單字字符,等價于[a-zA-Z0-9_]
    /W 任何ASCII非單字字符,等價于[^a-zA-Z0-9_]
    /s 任何Unicode空白符[/f/n/r/t/v]
    /S 任何Unicode非空白符,注意/w和/S的不同[^/f/n/r/t/v]
    /d 任何ASCII數(shù)字,等價于[0-9]
    /D 除了ASCII數(shù)字之外的任何字符,等價于[^0-9]
    [/b] 退格直接量(特例)
  3. 正則表達式的重復(fù)字符
    字符 含義
    {n,m} 匹配前一項至少n次,但不能超過m次
    {n,} 匹配前一項n次,或更多次
    {n} 匹配前一項恰好n次
    ? 匹配前一項0次或1次,也就是說這一項是可選的。等價于{0,1}
    + 匹配前一項1次或多次。等價于{1,}
    * 匹配前一項0次或多次。等價于{0,}
    在正則表達式中,括號具有幾種作用。一個作用是把單獨的項目組合成子表達式,以便可以象處理一個
    獨立的單元那樣用|、*、+或?等來處理它們。括號的另一個作用是在完整的模式中定義子模式。當(dāng)一
    個正則表達式成功地和目標(biāo)字符串相匹配時,可以從目標(biāo)串中抽出和括號中的子模式相匹配的部分。
  4. 正則表達式的選擇、分組和引用字符
    字符 含義
    | 選擇。匹配的是該符號的左邊的子表達式或右邊的子表達式
    (...) 組合。將幾個項目組合為一個單元,這個單元可由|、*、+或?等符號使用,
    而且還可以記住和這個組合匹配的字符,以供此后的引用使用
    (?:...) 只組合。把項目組合到一個單元,但是不記憶與該組匹配的字符
    /n 和第n個分組第一次匹配的字符相匹配,組是括號中的子表達式(可能是嵌套
    的)。組號是從左到右計數(shù)的左括號數(shù),以(?:形式分組的組不編碼。
  5. 正則表達式的錨元素
    字符 含義
    ^ 匹配字符串的開頭,在多行檢索中,匹配一行的開頭
    $ 匹配字符串的結(jié)尾,在多行檢索中,匹配一行的結(jié)尾
    /b 匹配一個詞語的邊界。簡而言之,就是位于字符/w和/W之間的位置,或位于字符/w
    和字符串的開頭和結(jié)尾的位置(但注意:[/b]匹配的是退格符)
    /B 匹配非詞語邊界的字符
    (?=p) 正前向聲明,要求接下來的字符都與模式p匹配,但是不包括匹配中的那些字符
    (?!p) 反向前聲明,要求接下來的字符不與模式P匹配
  6. 正則表達式的標(biāo)志
    字符 含義
    i 執(zhí)行大小寫不敏感匹配
    g 執(zhí)行一個全局匹配,簡而言之,即找到所有匹配,而不是找到第一個之后就停止
    m 多行模式,^匹配一行的開頭和字符串的開頭,$匹配一行的結(jié)尾和字符串的結(jié)尾

JS中的RegExp對象

  1. 構(gòu)造函數(shù):

    顯式構(gòu)造函數(shù),語法為:new RegExp("pattern"[,"flags"])。
    隱式構(gòu)造函數(shù),語法為: /pattern/[flags]。

  2. 靜態(tài)屬性

    index是當(dāng)前表達式模式首次匹配內(nèi)容的開始位置,從0開始計數(shù)。其初始值為-1,每次成功匹配時,index屬性都會隨之改變。
    input返回當(dāng)前所作用的字符串,可以簡寫為$_,初始值為空字符串""。
    lastIndex是當(dāng)前表達式模式首次匹配內(nèi)容中最后一個字符的下一個位置,從0開始計數(shù),常被作為繼續(xù)搜索時的起始位置,初始值為-1,表示從起始位置開始搜索,每次成功匹配時,lastIndex屬性值都會隨之改變。
    lastMatch是當(dāng)前表達式模式的最后一個匹配字符串,可以簡寫為$&。其初始值為空字符串""。在每次成功匹配時,lastMatch屬性值都會隨之改變。
    lastParen如果表達式模式中有括起來的子匹配,是當(dāng)前表達式模式中最后的子匹配所匹配到的子字符串,可以簡寫為$+。其初始值為空字符串""。每次成功匹配時,lastParen屬性值都會隨之改變。
    leftContext是當(dāng)前表達式模式最后一個匹配字符串左邊的所有內(nèi)容,可以簡寫為$`(其中“'”為鍵盤上“Esc”下邊的反單引號)。初始值為空字符串""。每次成功匹配時,其屬性值都會隨之改變。
    $1…$9這些屬性是只讀的。如果表達式模式中有括起來的子匹配,$1…$9屬性值分別是第1個到第9個子匹配所捕獲到的內(nèi)容。如果有超過9個以上的子匹配,$1…$9屬性分別對應(yīng)最后的9個子匹配。在一個表達式模式中,可以指定任意多個帶括號的子匹配,但RegExp對象只能存儲最后的9個子匹配的結(jié)果。在RegExp實例對象的一些方法所返回的結(jié)果數(shù)組中,可以獲得所有圓括號內(nèi)的子匹配結(jié)果。
  3. 實例屬性

    global返回創(chuàng)建RegExp對象實例時指定的global標(biāo)志(g)的狀態(tài)。如果創(chuàng)建RegExp對象實例時設(shè)置了g標(biāo)志,該屬性返回True,否則返回False,默認(rèn)值為False。
    ignoreCase返回創(chuàng)建RegExp對象實例時指定的ignoreCase標(biāo)志(i)的狀態(tài)。如果創(chuàng)建RegExp對象實例時設(shè)置了i標(biāo)志,該屬性返回True,否則返回False,默認(rèn)值為False。
    multiLine返回創(chuàng)建RegExp對象實例時指定的multiLine標(biāo)志(m)的狀態(tài)。如果創(chuàng)建RegExp對象實例時設(shè)置了m標(biāo)志,該屬性返回True,否則返回False,默認(rèn)值為False。
    source返回創(chuàng)建RegExp對象實例時指定的表達式文本字符串。
  4. 實例方法

    exec語法格式為exec(str)。該方法使用創(chuàng)建RegExp對象實例時所指定的表達式模式對一個字符串進行搜索,并返回一個包含搜索結(jié)果的數(shù)組。
    如果為正則表達式設(shè)置了全局標(biāo)志(g),可以通過多次調(diào)用exec和test方法在字符串中進行連續(xù)搜索,每次都是從RegExp對象的lastIndex屬性值指定的位置開始搜索字符串。
    如果沒有設(shè)置全局標(biāo)志(g),則exec和test方法忽略RegExp對象的lastIndex屬性值,從字符串的起始位置開始搜索。如果exec方法沒有找到匹配,返回值為null;如果找到匹配,則返回一個數(shù)組,并更新RegExp對象中有關(guān)靜態(tài)屬性以反映匹配情況。返回數(shù)組中的元素0包含了完整的匹配結(jié)果,而元素1~n依次是表達式模式中定義的各個子匹配的結(jié)果。
    test語法格式為test(str)。該方法檢查一個字符串中是否存在創(chuàng)建RegExp對象實例時所指定的表達式模式,如果存在就返回True,否則返回False。 如果找到匹配項,則會更新RegExp對象中的有關(guān)靜態(tài)屬性,以反映匹配情況。
    compile語法格式為compile("pattern"[,"flags"])。該方法可以更換RegExp對象實例所使用的表達式模式,并將新的表達式模式編譯為內(nèi)部格式,從而使以后的匹配過程執(zhí)行更快。
  5. RegExp說明

    默認(rèn)情況下,正則表達式使用最長(也叫貪婪)匹配原則.當(dāng)?緊隨其它限定符(*、+、?、{n}、{n,}、{n,m})之后時,匹配模式變成使用最短(也叫非貪婪)匹配原則.

    分組組合符就是將正則表達式中的某一部分內(nèi)容組合起來的符號,反向引用符則是用于匹配前面的分組組合所捕獲到的內(nèi)容標(biāo)識符號
    (1) (pattern)將圓括號中的pattern部分組合成一個可統(tǒng)一操作的組合項和子匹配,每個捕獲
    的子匹配項按照它們在正則表達式模式中從左到右出現(xiàn)的順序存儲在緩沖區(qū)中.緩沖區(qū)從1開始編號,最多可存儲99個子匹配捕獲的內(nèi)容.存儲在緩沖區(qū)中的子匹配捕獲的內(nèi)容,可以在編程語言中被檢索,也可以在正則表達式中被反向引用.若要匹配字面意義的括號字符"("和")",在正則表達式中要分別使用"/(" 和"/)".
    (2) /num匹配編號為num的緩沖區(qū)所保存的內(nèi)容,此處的num是一個標(biāo)識特定緩沖區(qū)的一位或兩位十進制正整數(shù),這種方式稱為子匹配的反向引用.反向引用最有用的應(yīng)用之一就是能提供表示相同匹配項的能力,例如,要匹配連續(xù)的5個數(shù)字字符,可以使用/d{5}作為正則表達式文本,它可以匹配12345,但是, 要匹配連續(xù)的5個相同的數(shù)字字符,如55555、11111等,需要使用(/d)/1{4}作為正則表達式文本,/1表示與前面(/d)所捕獲的內(nèi)容一樣,/1{4}則表示前面的(/d)所捕獲的內(nèi)容還連續(xù)出現(xiàn)4次.又例如,要匹配"Is is the cost of of gasoline going up up?"中所有連續(xù)重復(fù)的單詞部分,可以使用//b([a-z]+)/1/b/gi作為正則表達式文本.
    (3) (?:pattern) 將圓括號中的pattern部分組合成一個可統(tǒng)一操作的組合項,但不把這部分內(nèi)容當(dāng)作子匹配捕獲,即pattern部分是一個非捕獲匹配,它匹配的內(nèi)容不存儲在緩沖區(qū)中供以后使用.這對必須進行組合、但又不想讓組合的部分具有子匹配特點的情況很有用.
    (4) (?=pattern)稱為正向"預(yù)測先行"匹配,在被搜索字符串的相應(yīng)位置必須有pattern部分匹配的內(nèi)容,但這部分匹配的內(nèi)容不作為匹配結(jié)果處理,更不會被存儲在捕獲緩沖區(qū)中供以后使用.(?=pattern)必須位于一個正則表達式模式的最前或最后面.
    (5) (?!pattern)稱為反向"預(yù)測先行"匹配,在被搜索的字符串的相應(yīng)位置不能有pattern部分匹配的內(nèi)容,除此之外,功能與正向"預(yù)測先行"匹配一樣.


實例演示
* 簡單示例

[Ctrl+A 全選 注:如需引入外部Js需刷新才能執(zhí)行]
# 注意事項
(?<=exp)零寬度正回顧后發(fā)斷言(不支持)
(?<!exp)零寬度負(fù)回顧后發(fā)斷言(不支持)
# 參考資料
正則表達式30分鐘入門教程 http://www.jb51.NET/tools/zhengze.html

JavaScript技術(shù)JavaScript 核心參考教程 RegExp對象,轉(zhuǎn)載需保留來源!

鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請第一時間聯(lián)系我們修改或刪除,多謝。

主站蜘蛛池模板: 民国往事电视剧演员表| 乔治娅·格洛梅| cctv17节目表今天| 社会好全部歌词| 女人妣| 孕早期不能吃什么| 寄宿生韩国电影| 曹查理的十部经典电影| 无声真相电影免费观看| 日本电影高校教师| 羞羞的铁拳演员表| 唐安| cctv16节目表今天内容| 拔萝卜歌谱| 张少军| 时诗个人资料| 雷电影| 毕业论文3000字范文| 天国遥遥| 姬诚| 超薄打底广场舞视频| 啊嗯啊嗯啊嗯| 扎西顿珠的个人资料简介 | 体现汉字的歇后语| 夜生活女王| 回到黑暗 电影| 新民歌| 四美人| 《重紫》电视剧| 相识电影| 就爱小姐姐| 卧虎藏龙演员名单| 工程制图答案| 热点新闻素材| 假面骑士响鬼| 社会好全部歌词| 《七律长征》的简笔画| 亚洲怪谈| 礼运节选高中原文| 章若楠高清壁纸| 暴走财神1|