亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > regex > 正文

正則表達式regular expression詳述(二)

2020-01-20 22:31:25
字體:
來源:轉載
供稿:網友
正則表達式詳述(二)

    以下這些不是正則表達式的新增對象請參閱對應的JavaScript對象的屬性    $_屬性    參考input    $*屬性
    參考multiline    $&屬性    參考lastMatch    $+屬性    參考lastParen    $`屬性
    參考leftContext    $'屬性    參考rightContext     compile方法    在腳本運行期間編譯正則表達式對象
    屬于RegExp的方法     在JavaScript 1.2, NES 3.0以上版本提供     語法:
    regexp.compile(pattern[, flags])    以數:    regexp    正則表達式的名稱,可以是變量名或文字串。
    pattern    正則表達式的定義文本。    flags     如果指定的話,可以是下面其中的一個:    "g": 匹配所有可能的字串
    "i": 忽略大小寫    "gi": 匹配所有可能的字串及忽略大小寫    描述:
    使用compile方法來編譯一個正則表達式 created with the RegExp constructor function。這樣
就強制正則表達式只編譯一次,而不是每次遇到正則表達式的時候都編譯一次。當你確認正則表達式能
保持不變的時候可使用compile 方法來編譯它(在獲得它的匹配模式后),這樣就可以在腳本中重復多次使用它。
    你亦可以使用compile 方法來改變在運行期間改變正則表達式。例如,假如正則表達式發生變化,
你可以使用compile方法來重新編譯該對象來提高使用效率。
    使用該方法將改變正則表達式的source, global和ignoreCasesource屬性的值。    constructor
    指出建立對象原型的function。注意這個屬性的值由函數本身提供,而不是一個字串包含RegExp的name.Property提供。
    在JavaScript 1.1, NES 2.0以上版本提供    ECMA版本ECMA-262    描述:參考Object.constructor.
    exec方法    在指定的字符串運行匹配搜索。返回一個結果數組。    是RegExp的方法
    在JavaScript 1.2, NES 3.0以上版本提供     語法:    regexp.exec([str])regexp([str])
    參數:    regexp,正則表達式的名稱,可以是一個變量名或文字定義串。
    str,要匹配正則表達式的字符串,如果省略,將使用RegExp.input的值。
    描述:就如在語法描述中的一樣,正則表達工的exec方法能夠被直接調用(使用regexp.exec(str))或者間接調用(使用regexp(str))。
    假如你只是運行以找出是否匹配,可以使用String搜索方法。
    假如匹配成功,exec方法返回一個數組并且更新正則表達式對象屬性的值和預先定義的正則表達式對象、RegExp。如果匹配失敗,exec方法返回null。
    請看下例:    <SCRIPT LANGUAGE="JavaScript1.2">    //匹配一個b接著一個或多個d,再接著一個b
    //忽略大小寫    myRe=/d(b+)(d)/ig;    myArray = myRe.exec("cdbBdbsbz");
    </SCRIPT>    下面是該腳本的返回值:對象 屬性/Index 描述 例子
myArray

myArray的內容 ["dbBd", "bB", "d"]  
index
基于0的匹配index 1  
input
原始字符串  cdbBdbsbz  
[0]
最后匹配的字符  dbBd  
[1], ...[n]
用圓括號括住的匹配字符串,如果有的話。不限制括號的個數。  [1] = bB
[2] = d  
myRe
lastIndex
開始下次匹配操作的index值  5  
ignoreCase
指出"i"是否使用以忽略大小寫  true  
global
指出是否使用"g"標記來進行匹配所有可能的字串  true  
source
定義模式的文本字符串  d(b+)(d)  
RegExp
lastMatch$&
最后匹配的字符  dbBd  
leftContext$Q
最新匹配前面的子串  c  
rightContext$'
最新匹配后面的子串  bsbz  
$1, ...$9
圓括號內的匹配子串,如果有的話。圓括號的個數不受限制,但RegExp只能保留最后9個  $1 = bB  
$2 = d  
lastParen  $+
最后一個加上圓括號的匹配子串,如果有的話  d  

    假如你的正則表達式使用了"g"標記,你可以多次使用exec 方法來連續匹配相同的串。當你這樣做
的時候,新的匹配將從由正則表達式的lastIndex 屬性值確定的子串中開始。例如,假定你使用下面的腳本:
    <SCRIPT LANGUAGE="JavaScript1.2">    myRe=/ab*/g;str = "abbcdefabh"
    myArray = myRe.exec(str);
    document.writeln("Found "+myArray[0]+". Next match starts at "+myRe.lastIndex)
    mySecondArray = myRe.exec(str);
    document.writeln("Found "+mySecondArray[0]+". Next match starts at "+myRe.lastIndex)
    </SCRIPT>    這個腳本顯示如下結果:    Found abb. Next match starts at 3
    Found ab. Next match starts at 9    例子:
    在下面的例子中,用戶輸入一個名字,腳本根據輸入執行匹配操作。接著檢查數組看是否和其它用戶的名字匹配。
    本腳本假定已注冊的用戶的姓已經存進了數組A中,或許從一個數據庫中取得。    <HTML>
    <SCRIPT LANGUAGE="JavaScript1.2">    A = ["zhao","qian","sun","li","liang"]
    function lookup()     {     firstName = /w+/i();     if (!firstName)
       window.alert (RegExp.input + "非法輸入");     else {       count=0;
       for (i=0;i    輸入你的姓然后按回車鍵。
    <FORM><INPUT TYPE:"TEXT" NAME="FirstName" onChange="lookup(this);"></FORM>
    </HTML>    global屬性    正則表達式中是否使用了"g"標記。    RegExp屬性,只讀
    在JavaScript 1.2, NES 3.0以上版本提供     描述:    global是一個個別正則表達式對象的屬性
    如果使用了"g"標記,global的值為true;否則為 false。"g"標記指定正則表達式測試所有可能的匹配。
    你不能直接改變該屬性的值,但可以調用compile方法來改變它。    ignoreCase    檢查正則表達式是否使用了"i"標記
    RegExp屬性,只讀     在JavaScript 1.2, NES 3.0以上版本提供     描述:
    ignoreCase是個別正則表達式對象的一個屬性。
    如果使用了"i"標記,則返回true,否則返回false。"i"標記指示在進行匹配的時候忽略大小寫。
    你不能直接改變該屬性的值,但可以通過調用compile方法來改變它    input     指出正則表達式要測試那個字串。$_是這個屬性的另一個名字。
    RegExp的屬性,靜態     在JavaScript 1.2, NES 3.0以上版本提供
    描述:因為input是靜態的,不是某個個別的正則表達式對象的屬性。你也可以使用 RegExp.input來表示。
    如果沒有給正則表達式的exec或test方法提供字符串,并且RegExp.input中有值,則使用它的值來調用該方法。
    腳本或瀏覽器能夠預置input屬性。如果被預置了值且調用exec或 test方法的時候沒有提供字符串
則調用exec或test的時候使用input的值。input可以被瀏覽器以下面的方式設置:
    當text表單域處理句柄被調用的時候,input被設置為該text輸入的字串。
    當textarea表單域處理句柄被調用的時候,input被設置為textarea域內輸入的字串。注意multili
ne亦被設置成true從而能匹配多行文本。    當select表單域處理句柄被調用的時候,input被設置成selected text的值。
    當鏈接對象的處理句柄被調用的時候,input被設置成<A HREF=...>和</A>之間的字符串。
    事件理現句柄處理完畢后,input屬性的值被清除。    lastIndex     可讀/可寫的一個整數屬性,指出下一次匹配從哪里開始。
    RegExp的屬性     在JavaScript 1.2, NES 3.0以上版本提供
    描述:lastIndex 是個別的正則表達式對象的屬性。    這個屬性只有當正則表達式的"g"標記被使用以進行全串匹配的時候才被設置。實行以下規則:
    如果lastIndex大小字符串的長度,regexp.test和regexp.exec失敗,且lastIndex被設為0。
    如果lastIndex等于字串的長度且正則表達式匹配空字符串,則正則表達式從lastIndex的位置開始匹配。
    如果lastIndex等于字符串的長度且正則表達式不匹配空字符串,則正則表達式不匹配input,且lastIndex被置為0。
    否則,lastIndex被設置成最近一次匹配的下一點。    例如,按下面的順序執行腳本:    re = /(hi)?/g   匹配空字符串
    re("hi")   返回["hi", "hi"],lastIndex置為2
    re("hi")   返回[""],一個空數組,它的下標為0的元素就是匹配字符串。在這種情況下,返回空
串是因為lastIndex等于2(且仍然是2),并且"hi"的長度也是2。     lastMatch     最后一次匹配字符串,$&是同樣的意思。
    RegExp的屬性,靜態,只讀    在JavaScript 1.2, NES 3.0以上版本提供
   描述:因為lastMatch是靜態的,所以它不是個別指定正則表達式的屬性。你也可以使用RegExp.lastMatch。    lastParen
    最后一次加上括號的匹配字符串,如果有的話。$+是同樣的意思。    RegExp屬性,靜態,只讀
    在JavaScript 1.2, NES 3.0以上版本提供
    描述:因為lastParen是靜態的,它不是某個個別正則式的屬性,你可以使用RegExp.lastParen 表達同樣的意思。
    leftContext    最近一次匹配前面的子串,$`具有相同的意思。    RegExp的屬性,靜態,只讀
    在JavaScript 1.2, NES 3.0以上版本提供
    描述:因為leftContext是靜態的,不是某一個正則表達式的屬性,所以可以使用RegExp.leftContext來表達想同的意思。
    multiline    反映是否匹配多行文本,$*是相同的意思。    RegExp的屬性,靜態
    在JavaScript 1.2, NES 3.0以上版本提供
    描述:因為multiline是靜態的,而不是某個個別正則表達式的屬性,所以能夠用RegExp.multiline表達相同的意思。
    如果允許匹配多行文本,則multiline為true,如果搜索必須在換行時停止,則為false。
    腳本或瀏覽器能夠設置multiline屬性。當一個textarea的事件處理句柄被調用的時候,multiline
被置為true。在事件處理句柄處理完畢后,multiline屬性值被清除。也就是說,如果你設置了multili
ne為true,則執行任何的事件處理句柄后,multiline被置為false。    prototype
    描繪類的原型。你可以根據要求使用prototype來增加類的屬性或方法。為了獲得prototypes 的資
料,請參閱RegExp的Function.prototype.Property屬性。    從JavaScript 1.1, NES 2.0版本開始提供
    ECMA版本ECMA-262    rightContext     最后一次匹配的右邊的字符串,$'是同樣的效果。
    RegExp的屬性,靜態,只讀    從 JavaScript 1.2, NES 3.0以上版本開始提供
    描述:因為rightContext是靜態的,不是某個個別正則表達工的屬性,可以使用RegExp.rightContext來達到相同的效果。
    source     一個只讀屬性,包含正則表達式定義的模式,不包僑forward slashes和"g"或"i"標記。    RegExp的屬性,只讀
    從JavaScript 1.2, NES 3.0以上版本開始提供
    描述:source是個別正則表達式對象的屬性,你不能直接改變它的值,但可以通過調用compile 方法來改變它。    test
    執行指定字符串的正則表達式匹配搜索,返回true或false。    RegExp的方法
    從JavaScript 1.2, NES 3.0以上版本開始提供     語法:regexp.test([str])
    參數:regexp,正則表達式的名稱,可以是變量名或正則表達式定義文字串
          str,要匹配的字符串,如果省略,將使用RegExp.input的值為作參數
    描述:當你需要知道一個字符串能否匹配某個正則表達工,可以使用test方法(與String.search方
法類似); 為了獲得更多的信息(但速度將變慢),可以使用exec方法(與String.match方法類似)。    例子:下面的例子顯示test是否成功的提示:
    function testinput(re, str){
      if (re.test(str))  midstring = " contains ";
      else midstring = " does not contain ";
      document.write (str + midstring + re.source);   }    toSource
    返回一個字符串象征對象的源碼    RegExp的方法    從JavaScript 1.3以上版本開始提供     語法:toSource()
    參數:沒有    描述:toSource方法返回下述的值:    對于內置的RegExp對象,toSource返回下面的字符象征源碼不可用:
    function Boolean(){      [native code] }
    在RegExp場合中, toSource返回象征源碼的字符串,通常這個方法是由JavaScript內部自動調用而不是不代碼中顯式調用。
    更多請看Object.toSource    toString     返回描繪指定對象的字符串。    RegExp的方法
    從JavaScript 1.1, NES 2.0開始提供    ECMA版本ECMA-262    語法:toString()    參數:無
    描述:RegExp對象不考慮Object對象的toString方法;它不繼承Object.toString,對于RegExp 對
象,toString方法返回一個代表該對象的字符串。    例如:下面的例子顯示象征RegExp對象的字符串
    myExp = new RegExp("a+b+c");    alert(myExp.toString())
    displays "/a+b+c/"    更多請看:Object.toString    valueOf     返回一個RegExp對象的原始值
    RegExp的方法    從JavaScript 1.1版本開始提供    ECMA版本:ECMA-262     語法:valueOf()
    參數:無    描述:RegExp的valueOf方法以字符串形式返回RegExp對象的原始值,這個值與RegExp.toString相等。
    該方法通常由JavaScript內部自動調用而不是顯式調用    例子:    myExp = new RegExp("a+b+c");
    alert(myExp.valueOf())    displays "/a+b+c/"
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
久久久久久久成人| 欧美丰满老妇厨房牲生活| 欧美另类老肥妇| 国产精品在线看| 国产亚洲精品一区二555| 一区二区三区国产在线观看| 精品女同一区二区三区在线播放| 国产亚洲欧美aaaa| 国产精品视频大全| 97精品伊人久久久大香线蕉| 国产欧美日韩91| 97成人精品区在线播放| 中文字幕av日韩| 国产欧美在线视频| 久久久久久久国产精品视频| 国产日韩欧美综合| 狠狠操狠狠色综合网| 欧美中文字幕视频在线观看| 亚洲色图色老头| 欧美另类69精品久久久久9999| 国产一区二区成人| 国产日韩av在线| 亚洲欧美精品中文字幕在线| 国产精品久久久久久久久久久新郎| 欧美日韩国产在线播放| 亚洲视频欧洲视频| 欧美精品福利视频| 欧美多人爱爱视频网站| 亚洲国产精品国自产拍av秋霞| 亚洲精品99久久久久| 91老司机精品视频| 91麻豆桃色免费看| 日韩在线观看免费高清完整版| 国产91色在线免费| 欧美在线观看网站| 亚洲欧美日韩综合| 成人激情免费在线| 成人久久18免费网站图片| 国产成人精品一区| 欧美最猛性xxxx| 国产剧情久久久久久| 日韩中文视频免费在线观看| 国产精品自在线| 国产91精品久久久久久| 中文字幕日韩免费视频| 午夜精品福利在线观看| 97视频在线观看视频免费视频| 精品国内自产拍在线观看| 日本精品久久久| 91精品国产综合久久久久久蜜臀| 国产精品日韩欧美| 中文字幕欧美专区| 中文字幕精品www乱入免费视频| www.午夜精品| 亚洲а∨天堂久久精品9966| 夜夜躁日日躁狠狠久久88av| 欧美日本高清一区| 久久精品国产一区二区电影| 韩国v欧美v日本v亚洲| 亚洲人成电影网站色xx| 日韩在线欧美在线| 亚洲人成77777在线观看网| 国产va免费精品高清在线| 91精品久久久久久久久久久| 国产亚洲视频在线观看| 国产精品成av人在线视午夜片| 精品爽片免费看久久| 伊人成人开心激情综合网| 日韩精品在线影院| 国产精品6699| 亚洲视频精品在线| 欧美国产一区二区三区| 国产精品自产拍在线观看中文| 欧美黑人国产人伦爽爽爽| 丝袜亚洲另类欧美重口| 日韩精品极品在线观看| 久久久精品免费| 国产区精品视频| 久久精品一偷一偷国产| 日韩一区视频在线| 久久久久这里只有精品| 亚洲精品理论电影| 日韩久久精品成人| 精品国产自在精品国产浪潮| 在线观看国产精品91| 久久不射热爱视频精品| 久久人91精品久久久久久不卡| 国产999精品久久久影片官网| 亚洲午夜精品久久久久久久久久久久| 高清欧美性猛交xxxx黑人猛交| 色妞一区二区三区| 奇米一区二区三区四区久久| 亚洲一区美女视频在线观看免费| 国产精品日日做人人爱| 亚洲天堂影视av| 成人免费淫片视频软件| 国产激情999| 久青草国产97香蕉在线视频| 一本色道久久88精品综合| 亚洲第五色综合网| 国产成人精品亚洲精品| 国产精品久久久久9999| 久久久久国产视频| 国产成人精品久久| 国产成人精品免费久久久久| 国产欧美一区二区三区久久人妖| 国产精品久久久久久久一区探花| 国产深夜精品福利| 正在播放国产一区| 色偷偷综合社区| 国产亚洲aⅴaaaaaa毛片| 精品美女永久免费视频| 欧美性生交xxxxx久久久| 亚洲欧美日韩另类| 国产欧美日韩精品丝袜高跟鞋| 亚洲福利视频网站| 亚洲欧美激情另类校园| 欧美日韩国产综合新一区| 日韩中文有码在线视频| 色与欲影视天天看综合网| 韩曰欧美视频免费观看| 国产精品久久久久9999| 欧美另类极品videosbest最新版本| 午夜剧场成人观在线视频免费观看| 成人h视频在线| 人九九综合九九宗合| 精品香蕉在线观看视频一| 69国产精品成人在线播放| 清纯唯美日韩制服另类| www.美女亚洲精品| 亚洲欧洲在线看| 欧美一级电影久久| 精品成人国产在线观看男人呻吟| 中文字幕亚洲情99在线| 狠狠色狠狠色综合日日小说| 亚洲综合在线中文字幕| 国内精品一区二区三区四区| 成人福利网站在线观看11| 福利微拍一区二区| 国产精品久久久久久久久久东京| 77777少妇光屁股久久一区| 久久久97精品| 国模视频一区二区三区| 国产精品第10页| 狠狠操狠狠色综合网| 久久综合网hezyo| 精品一区二区亚洲| 日韩精品极品在线观看播放免费视频| 日韩免费高清在线观看| 米奇精品一区二区三区在线观看| 18一19gay欧美视频网站| 伊人av综合网| 欧洲亚洲免费在线| 欧美日韩在线另类| 亚洲成人中文字幕| 91欧美视频网站| 91精品久久久久久久久久入口| 欧美黄色性视频| 亚洲国产成人久久综合一区| 国产精品国产三级国产aⅴ浪潮| 国产精品看片资源| 久久影院资源站| 欧美国产精品人人做人人爱| 久久国产精品电影|