以下這些不是正則表達(dá)式的新增對(duì)象請(qǐng)參閱對(duì)應(yīng)的Javascript對(duì)象的屬性
$_屬性 參考input
$*屬性 參考multiline
$&屬性 參考lastMatch
$+屬性 參考lastParen
$`屬性 參考leftContext
$'屬性 參考rightContext compile方法
在腳本運(yùn)行期間編譯正則表達(dá)式對(duì)象屬于RegExp的方法
在Javascript 1.2, NES 3.0以上版本提供
語法:
regexp.compile(pattern[, flags]) 以數(shù):
regexp 正則表達(dá)式的名稱,可以是變量名或文字串。
pattern 正則表達(dá)式的定義文本。
flags 如果指定的話,可以是下面其中的一個(gè):
"g": 匹配所有可能的字串 ; "i": 忽略大小寫 ; "gi": 匹配所有可能的字串及忽略大小寫 描述:
使用compile方法來編譯一個(gè)正則表達(dá)式 created with the RegExp constructor function。這樣就強(qiáng)制正則表達(dá)式只編譯一次,而不是每次遇到正則表達(dá)式的時(shí)候都編譯一次。當(dāng)你確認(rèn)正則表達(dá)式能保持不變的時(shí)候可使用compile 方法來編譯它(在獲得它的匹配模式后),這樣就可以在腳本中重復(fù)多次使用它。
你亦可以使用compile 方法來改變?cè)谶\(yùn)行期間改變正則表達(dá)式。例如,假如正則表達(dá)式發(fā)生變化, 你可以使用compile方法來重新編譯該對(duì)象來提高使用效率。使用該方法將改變正則表達(dá)式的source, global和ignoreCasesource屬性的值。 constructor指出建立對(duì)象原型的function。注意這個(gè)屬性的值由函數(shù)本身提供,而不是一個(gè)字串包含RegExp的name.Property提供。
在Javascript 1.1, NES 2.0以上版本提供 ECMA版本ECMA-262
描述:
參考Object.constructor.exec方法 在指定的字符串運(yùn)行匹配搜索。返回一個(gè)結(jié)果數(shù)組。
是RegExp的方法
在Javascript 1.2, NES 3.0以上版本提供
語法: regexp.exec([str])regexp([str])
參數(shù): regexp,正則表達(dá)式的名稱,可以是一個(gè)變量名或文字定義串。
str,要匹配正則表達(dá)式的字符串,如果省略,將使用RegExp.input的值。
描述:就如在語法描述中的一樣,正則表達(dá)工的exec方法能夠被直接調(diào)用(使用regexp.exec(str))或者間接調(diào)用(使用regexp(str))。
假如你只是運(yùn)行以找出是否匹配,可以使用String搜索方法。
假如匹配成功,exec方法返回一個(gè)數(shù)組并且更新正則表達(dá)式對(duì)象屬性的值和預(yù)先定義的正則表達(dá)式對(duì)象、RegExp。如果匹配失敗,exec方法返回null。
請(qǐng)看下例:
<script LANGUAGE="Javascript1.2"> //匹配一個(gè)b接著一個(gè)或多個(gè)d,再接著一個(gè)b
//忽略大小寫 myRe=/d(b+)(d)/ig; myArray = myRe.exec("cdbBdbsbz");
</script> 下面是該腳本的返回值:對(duì)象 屬性/Index 描述 例子
myArray
myArray的內(nèi)容 ["dbBd", "bB", "d"]
index
基于0的匹配index 1
input
原始字符串 cdbBdbsbz
[0]
最后匹配的字符 dbBd
[1], ...[n]
用圓括號(hào)括住的匹配字符串,如果有的話。不限制括號(hào)的個(gè)數(shù)。 [1] = bB
[2] = d
myRe
lastIndex
開始下次匹配操作的index值 5
ignoreCase
指出"i"是否使用以忽略大小寫 true
global
指出是否使用"g"標(biāo)記來進(jìn)行匹配所有可能的字串 true
source
定義模式的文本字符串 d(b+)(d)
RegExp
lastMatch$&
最后匹配的字符 dbBd
leftContext$\Q
最新匹配前面的子串 c
rightContext$'
最新匹配后面的子串 bsbz
$1, ...$9
圓括號(hào)內(nèi)的匹配子串,如果有的話。圓括號(hào)的個(gè)數(shù)不受限制,但RegExp只能保留最后9個(gè) $1 = bB
$2 = d
lastParen $+
最后一個(gè)加上圓括號(hào)的匹配子串,如果有的話 d
假如你的正則表達(dá)式使用了"g"標(biāo)記,你可以多次使用exec 方法來連續(xù)匹配相同的串。當(dāng)你這樣做
的時(shí)候,新的匹配將從由正則表達(dá)式的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>
這個(gè)腳本顯示如下結(jié)果:
Found abb. Next match starts at 3
Found ab. Next match starts at 9
例子:
在下面的例子中,用戶輸入一個(gè)名字,腳本根據(jù)輸入執(zhí)行匹配操作。接著檢查數(shù)組看是否和其它用戶的名字匹配。
本腳本假定已注冊(cè)的用戶的姓已經(jīng)存進(jìn)了數(shù)組A中,或許從一個(gè)數(shù)據(jù)庫中取得。
<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屬性
正則表達(dá)式中是否使用了"g"標(biāo)記。
RegExp屬性,只讀
在Javascript 1.2, NES 3.0以上版本提供
描述: global是一個(gè)個(gè)別正則表達(dá)式對(duì)象的屬性
如果使用了"g"標(biāo)記,global的值為true;否則為 false。"g"標(biāo)記指定正則表達(dá)式測(cè)試所有可能的匹配。
你不能直接改變?cè)搶傩缘闹?,但可以調(diào)用compile方法來改變它。 ignoreCase 檢查正則表達(dá)式是否使用了"i"標(biāo)記
RegExp屬性,只讀 在Javascript 1.2, NES 3.0以上版本提供
描述:
ignoreCase是個(gè)別正則表達(dá)式對(duì)象的一個(gè)屬性。
如果使用了"i"標(biāo)記,則返回true,否則返回false。"i"標(biāo)記指示在進(jìn)行匹配的時(shí)候忽略大小寫。
你不能直接改變?cè)搶傩缘闹担梢酝ㄟ^調(diào)用compile方法來改變它 input 指出正則表達(dá)式要測(cè)試那個(gè)字串。$_是這個(gè)屬性的另一個(gè)名字。
RegExp的屬性,靜態(tài) 在Javascript 1.2, NES 3.0以上版本提供
描述:因?yàn)閕nput是靜態(tài)的,不是某個(gè)個(gè)別的正則表達(dá)式對(duì)象的屬性。你也可以使用 RegExp.input來表示。
如果沒有給正則表達(dá)式的exec或test方法提供字符串,并且RegExp.input中有值,則使用它的值來調(diào)用該方法。
腳本或?yàn)g覽器能夠預(yù)置input屬性。如果被預(yù)置了值且調(diào)用exec或 test方法的時(shí)候沒有提供字符串
則調(diào)用exec或test的時(shí)候使用input的值。input可以被瀏覽器以下面的方式設(shè)置:
當(dāng)text表單域處理句柄被調(diào)用的時(shí)候,input被設(shè)置為該text輸入的字串。
當(dāng)textarea表單域處理句柄被調(diào)用的時(shí)候,input被設(shè)置為textarea域內(nèi)輸入的字串。注意multili
ne亦被設(shè)置成true從而能匹配多行文本。 當(dāng)select表單域處理句柄被調(diào)用的時(shí)候,input被設(shè)置成selected text的值。
當(dāng)鏈接對(duì)象的處理句柄被調(diào)用的時(shí)候,input被設(shè)置成<A HREF=...>和</A>之間的字符串。
事件理現(xiàn)句柄處理完畢后,input屬性的值被清除。 lastIndex 可讀/可寫的一個(gè)整數(shù)屬性,指出下一次匹配從哪里開始。
RegExp的屬性 在Javascript 1.2, NES 3.0以上版本提供
描述:lastIndex 是個(gè)別的正則表達(dá)式對(duì)象的屬性。 這個(gè)屬性只有當(dāng)正則表達(dá)式的"g"標(biāo)記被使用以進(jìn)行全串匹配的時(shí)候才被設(shè)置。實(shí)行以下規(guī)則:
如果lastIndex大小字符串的長(zhǎng)度,regexp.test和regexp.exec失敗,且lastIndex被設(shè)為0。
如果lastIndex等于字串的長(zhǎng)度且正則表達(dá)式匹配空字符串,則正則表達(dá)式從lastIndex的位置開始匹配。
如果lastIndex等于字符串的長(zhǎng)度且正則表達(dá)式不匹配空字符串,則正則表達(dá)式不匹配input,且lastIndex被置為0。
否則,lastIndex被設(shè)置成最近一次匹配的下一點(diǎn)。 例如,按下面的順序執(zhí)行腳本: re = /(hi)?/g 匹配空字符串
re("hi") 返回["hi", "hi"],lastIndex置為2
re("hi") 返回[""],一個(gè)空數(shù)組,它的下標(biāo)為0的元素就是匹配字符串。在這種情況下,返回空
串是因?yàn)閘astIndex等于2(且仍然是2),并且"hi"的長(zhǎng)度也是2。 lastMatch 最后一次匹配字符串,$&是同樣的意思。
RegExp的屬性,靜態(tài),只讀 在Javascript 1.2, NES 3.0以上版本提供
描述:因?yàn)閘astMatch是靜態(tài)的,所以它不是個(gè)別指定正則表達(dá)式的屬性。你也可以使用RegExp.lastMatch。 lastParen
最后一次加上括號(hào)的匹配字符串,如果有的話。$+是同樣的意思。
RegExp屬性,靜態(tài),只讀
在Javascript 1.2, NES 3.0以上版本提供
描述:因?yàn)閘astParen是靜態(tài)的,它不是某個(gè)個(gè)別正則式的屬性,你可以使用RegExp.lastParen 表達(dá)同樣的意思。
leftContext 最近一次匹配前面的子串,$`具有相同的意思。
RegExp的屬性,靜態(tài),只讀
在Javascript 1.2, NES 3.0以上版本提供
描述:因?yàn)閘eftContext是靜態(tài)的,不是某一個(gè)正則表達(dá)式的屬性,所以可以使用RegExp.leftContext來表達(dá)想同的意思。
multiline 反映是否匹配多行文本,$*是相同的意思。
RegExp的屬性,靜態(tài)
在Javascript 1.2, NES 3.0以上版本提供
描述:因?yàn)閙ultiline是靜態(tài)的,而不是某個(gè)個(gè)別正則表達(dá)式的屬性,所以能夠用RegExp.multiline表達(dá)相同的意思。
如果允許匹配多行文本,則multiline為true,如果搜索必須在換行時(shí)停止,則為false。
腳本或?yàn)g覽器能夠設(shè)置multiline屬性。當(dāng)一個(gè)textarea的事件處理句柄被調(diào)用的時(shí)候,multiline
被置為true。在事件處理句柄處理完畢后,multiline屬性值被清除。也就是說,如果你設(shè)置了multili
ne為true,則執(zhí)行任何的事件處理句柄后,multiline被置為false。
prototype
描繪類的原型。你可以根據(jù)要求使用prototype來增加類的屬性或方法。為了獲得prototypes 的資
料,請(qǐng)參閱RegExp的function.prototype.Property屬性。 從Javascript 1.1, NES 2.0版本開始提供
ECMA版本ECMA-262 rightContext 最后一次匹配的右邊的字符串,$'是同樣的效果。
RegExp的屬性,靜態(tài),只讀 從 Javascript 1.2, NES 3.0以上版本開始提供
描述:因?yàn)閞ightContext是靜態(tài)的,不是某個(gè)個(gè)別正則表達(dá)工的屬性,可以使用RegExp.rightContext來達(dá)到相同的效果。
source 一個(gè)只讀屬性,包含正則表達(dá)式定義的模式,不包僑forward slashes和"g"或"i"標(biāo)記。
RegExp的屬性,只讀
從Javascript 1.2, NES 3.0以上版本開始提供
描述:source是個(gè)別正則表達(dá)式對(duì)象的屬性,你不能直接改變它的值,但可以通過調(diào)用compile 方法來改變它。 test
執(zhí)行指定字符串的正則表達(dá)式匹配搜索,返回true或false。 RegExp的方法
從Javascript 1.2, NES 3.0以上版本開始提供 語法:regexp.test([str])
參數(shù):regexp,正則表達(dá)式的名稱,可以是變量名或正則表達(dá)式定義文字串
str,要匹配的字符串,如果省略,將使用RegExp.input的值為作參數(shù)
描述:當(dāng)你需要知道一個(gè)字符串能否匹配某個(gè)正則表達(dá)工,可以使用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
返回一個(gè)字符串象征對(duì)象的源碼 RegExp的方法 從Javascript 1.3以上版本開始提供 語法:toSource()
參數(shù):沒有 描述:toSource方法返回下述的值: 對(duì)于內(nèi)置的RegExp對(duì)象,toSource返回下面的字符象征源碼不可用:
function Boolean(){ [native code] }
在RegExp場(chǎng)合中, toSource返回象征源碼的字符串,通常這個(gè)方法是由Javascript內(nèi)部自動(dòng)調(diào)用而不是不代碼中顯式調(diào)用。
更多請(qǐng)看Object.toSource toString 返回描繪指定對(duì)象的字符串。
RegExp的方法
從Javascript 1.1, NES 2.0開始提供 ECMA版本ECMA-262 語法:toString() 參數(shù):無
描述:RegExp對(duì)象不考慮Object對(duì)象的toString方法;它不繼承Object.toString,對(duì)于RegExp 對(duì)
象,toString方法返回一個(gè)代表該對(duì)象的字符串。 例如:下面的例子顯示象征RegExp對(duì)象的字符串
myExp = new RegExp("a+b+c"); alert(myExp.toString())
displays "/a+b+c/" 更多請(qǐng)看:Object.toString valueOf 返回一個(gè)RegExp對(duì)象的原始值
RegExp的方法 從Javascript 1.1版本開始提供 ECMA版本:ECMA-262 語法:valueOf()
參數(shù):無 描述:RegExp的valueOf方法以字符串形式返回RegExp對(duì)象的原始值,這個(gè)值與RegExp.toString相等。
該方法通常由Javascript內(nèi)部自動(dòng)調(diào)用而不是顯式調(diào)用 例子: myExp = new RegExp("a+b+c");
alert(myExp.valueOf()) displays "/a+b+c/"
正則表達(dá)式詳述 四
2020-07-17 14:24livebaby 正則表達(dá)式
以下這些不是正則表達(dá)式的新增對(duì)象請(qǐng)參閱對(duì)應(yīng)的Javascript對(duì)象的屬性
延伸 · 閱讀
- 2022-03-10Python全棧之正則表達(dá)式
- 2022-03-06CentOS中的正則表達(dá)式
- 2022-03-06詳解Android過濾emoji表情正則表達(dá)式
- 2022-03-05linux系統(tǒng)用戶管理與grep正則表達(dá)式示例教程
- 2022-03-03C++ 正則表達(dá)式的應(yīng)用詳解
- 2022-03-03C# 中使用正則表達(dá)式匹配字符的含義
- 正則表達(dá)式
常用正則表達(dá)式語法例句
本文主要分享一些常用正則表達(dá)式語法例句,具有一定的參考價(jià)值,有需要的朋友可以了解下...
- 正則表達(dá)式
解決preg_match匹配過多字符長(zhǎng)度的限制的思路分析
今天在寫采集程序的時(shí)候,使用到了preg_match,但是有幾個(gè)頁面始終采集不下來。反復(fù)看了N遍的正則,沒有發(fā)現(xiàn)有問題。于是開始懷疑preg_match是否對(duì)匹配的...
- 正則表達(dá)式
正則表達(dá)式概述 什么是正則表達(dá)式
正則表達(dá)式就是用某種模式去匹配一類字符串的公式,主要用來描述字符串匹配的工具...
- 正則表達(dá)式
js通過正則匹配沒有內(nèi)容的空標(biāo)簽
這篇文章主要介紹了js通過正則匹配沒有內(nèi)容的空標(biāo)簽,需要的朋友可以參考下...
- 正則表達(dá)式
正則表達(dá)式re.sub替換不完整的問題及完整解決方案
re.sub是個(gè)正則表達(dá)式方面的函數(shù),用來實(shí)現(xiàn)通過正則表達(dá)式,實(shí)現(xiàn)比普通字符串的replace更加強(qiáng)大的替換功能。這篇文章主要介紹了正則表達(dá)式re.sub替換不完...
- 正則表達(dá)式
JavaScript 正則表達(dá)式 驗(yàn)證整數(shù)、小數(shù)、實(shí)數(shù)、有效位小數(shù)最簡(jiǎn)單
JavaScript 正則表達(dá)式 驗(yàn)證整數(shù)、小數(shù)、實(shí)數(shù)、有效位小數(shù)最簡(jiǎn)單,輸入完按回車后即可驗(yàn)證!(自認(rèn)為最簡(jiǎn)單?。?..
- 正則表達(dá)式
asp去除html標(biāo)記與空格的正則
用asp實(shí)現(xiàn)的去除內(nèi)容的html標(biāo)記和空格的實(shí)現(xiàn)代碼,正在學(xué)習(xí)正則表達(dá)式的朋友可以參考下...
- 正則表達(dá)式
JS正則表達(dá)式驗(yàn)證數(shù)字(非常全)
正則表達(dá)式,又稱規(guī)則表達(dá)式,在項(xiàng)目中經(jīng)常會(huì)用到正則表達(dá)式,今天小編抽空給大家分享js正則表達(dá)式驗(yàn)證數(shù)字的方法,感興趣的朋友參考下吧...