正则表达式是regular expressionQ看来英文比中文要好理解多了Q就是检查表辑ּW?
不符合规定!Q正则表辑ּ有一个功能十分强大而又十分复杂的对象RegExpQ在Javascript1.2 版本?
上提供?
下面我们看看有关正则表达式的介绍Q?
正则表达式对象用来规范一个规范的表达?也就是表辑ּW不W合特定的要求,比如是不是Email
地址格式{?Q它h用来查给出的字符串是否符合规则的属性和Ҏ?
除此之外Q你用RegExp构造器建立的个别正则表辑ּ对象的属性,已l预先定义好了正则表辑ּ
对象的静态属性,你可以随时用它们?
核心对象Q?
在Javascript 1.2, NES 3.0以上版本提供?
在Javascript 1.3以后版本增加了toSourceҎ?
建立ҎQ?
文字格式或RegExp构造器函数?
文字建立格式使用以下格式Q?
/pattern/flags?模式/标记
构造器函数Ҏ使用Ҏ如下Q?
new RegExp("pattern"[, "flags"])即new RegExp("模式"[,"标记"])
参数Q?
pattern(模式)
表示正则表达式的文本
flags(标记)
如果指定此项Qflags可以是下面g一Q?
g: global match(全定匚w)
i: ignore case(忽略大小?
gi: both global match and ignore case(匚w所有可能的|也忽略大写)
注意Q文本格式中的参C要用引h讎ͼ而构造器函数的参数则要用引h记。所以下面的
表达式徏立同L正则表达式:
/ab+c/i
new RegExp("ab+c", "i")
描述Q?
当用构造函数的时候,必须使用正常的字W串避开规则(在字W串中加入前导字W?)是必ȝ?
例如Q下面的两条语句是等LQ?
re = new RegExp("\w+")
re = /w+/
下面的提供了在正则表辑ּ中能够用的完整对特D字W的一个完整的列表和描q?
?.3Q正则表辑ּ中的Ҏ字符Q?
字符
意义Q对于字W,通常表示按字面意义,指出接着的字WؓҎ字符Q不作解释?
例如Q?b/匚w字符'b',通过在b 前面加一个反斜杠Q也是/b/Q则该字W变成特D字W,表示
匚w一个单词的分界Uѝ?
或者:
对于几个字符Q通常说明是特D的Q指出紧接着的字W不是特D的Q而应该按字面解释?
例如Q?是一个特D字W,匚wL个字W?包括0个字W?Q例如:/a*/意味匚w0个或多个a?
Z匚w字面上的*Q在a前面加一个反斜杠Q例如:/a*/匚w'a*'?
字符^
意义Q表C匹配的字符必须在最前边?
例如Q?^A/不匹?an A,"中的'A'Q但匚w"An A."中最前面?A'?
字符$
意义Q与^cMQ匹配最末的字符?
例如Q?t$/不匹?eater"中的't'Q但匚w"eat"中的't'?
字符*
意义Q匹?前面的字W?ơ或nơ?
例如:/bo*/匚w"A ghost booooed"中的'boooo'?A bird warbled"中的'b'Q但不匹?A goat g
runted"中的M字符?
字符+
意义Q匹?号前面的字符1ơ或nơ。等价于?
例如Q?a+/匚w"candy"中的'a'?caaaaaaandy."中的所?a'?
字符?
意义Q匹?前面的字W?ơ或1ơ?
例如Q?e?le?/匚w"angel"中的'el'?angle."中的'le'?
字符.
意义Q?数?匚w除换行符外的所有单个的字符?
例如Q?.n/匚w"nay, an apple is on the tree"中的'an'?on'Q但不匹?nay'?
字符(x)
意义Q匹?x'q记录匹配的倹{?
例如Q?(foo)/匚w和记?foo bar."中的'foo'。匹配子串能被结果数l中的素[1], ..., [n] q?
回,或被RegExp对象的属?1, ..., $9q回?
字符x|y
意义Q匹?x'或?y'?
例如Q?green|red/匚w"green apple"中的'green'?red apple."中的'red'?
字符
意义Q这里的n是一个正整数。匹配前面的n个字W?
例如Q?a/不匹?candy,"中的'a'Q但匚w"caandy," 中的所?a'?caaandy."中前面的两个
'a'?
字符
意义Q这里的n是一个正整数。匹配至n个前面的字符?
例如Q?a不匹?candy"中的'a'Q但匚w"caandy"中的所?a'?caaaaaaandy."中的所?a'
字符
意义Q这里的n和m都是正整数。匹配至n个最多m个前面的字符?
例如Q?a/不匹?cndy"中的M字符Q但匚w "candy,"中的'a'Q?caandy," 中的前面两个
'a'?caaaaaaandy"中前面的三个'a'Q注意:即"caaaaaaandy" 中有很多?a'Q但只匹配前面的?
?a'?aaa"?
字符[xyz]
意义Q一字符列表Q匹配列Z的Q一字符。你可以通过q字W?指出一个字W范围?
例如Q[abcd]跟[a-c]一栗它们匹?brisket"中的'b'?ache"中的'c'?
字符[^xyz]
意义Q一字符补集Q也是_它匹配除了列出的字符外的所有东ѝ?你可以用连字符-指出一
字符范围?
例如Q[^abc]和[^a-c]{hQ它们最早匹?brisket"中的'r'?chop."中的'h'?
字符[b]
意义Q匹配一个空?不要与bh)
字符b
意义Q匹配一个单词的分界U,比如一个空?不要与[b]h)
例如Q?bnw/匚w"noonday"中的'no'Q?wyb/匚w"possibly yesterday."中的'ly'?
字符B
意义Q匹配一个单词的非分界线
例如Q?wBn/匚w"noonday"中的'on'Q?yBw/匚w"possibly yesterday."中的'ye'?
字符cX
意义Q这里的X是一个控制字W。匹配一个字W串的控制字W?
例如Q?cM/匚w一个字W串中的control-M?
字符d
意义Q匹配一个数字,{h于[0-9]?
例如Q?d/?[0-9]/匚w"B2 is the suite number."中的'2'?
字符D
意义Q匹配Q何的非数字,{h于[^0-9]?
例如Q?D/?[^0-9]/匚w"B2 is the suite number."中的'B'?
字符f
意义Q匹配一个表单符
字符n
意义Q匹配一个换行符
字符r
意义Q匹配一个回车符
字符s
意义Q匹配一个单个whiteI格W,包括I格QtabQform feedQ换行符Q等价于[ fnrtv]?
例如Q?sw*/匚w"foo bar."中的' bar'?
字符S
意义Q匹配除whiteI格W以外的一个单个的字符Q等价于[^ fnrtv]?
例如Q?S/w*匚w"foo bar."中的'foo'?
字符t
意义Q匹配一个制表符
字符v
意义Q匹配一个顶头制表符
字符w
意义Q匹配所有的数字和字母以及下划线Q等价于[A-Za-z0-9_]?
例如Q?w/匚w"apple,"中的'a'Q?$5.28,"中的'5'?3D."中的'3'?
字符W
意义Q匹配除数字、字母外及下划线外的其它字符Q等价于[^A-Za-z0-9_]?
例如Q?W/或?[^$A-Za-z0-9_]/匚w"50%."中的'%'?
字符n
意义Q这里的n是一个正整数。匹配一个正则表辑ּ的最后一个子串的n的?计数左圆括号)?
例如Q?apple(,)sorange1/匚w"apple, orange, cherry, peach."中的'apple, orange'Q下?
有一个更加完整的例子?
注意Q如果左圆括号中的数字比n指定的数字还,则n取下一行的八进制escape作ؓ描述?
字符ooctal和xhex
意义Q这里的ooctal是一个八q制的escape|而xhex是一个十六进制的escape|允许在一?
正则表达式中嵌入ASCII码?
当表辑ּ被检查的时候,文字W号提供了编辑正则表辑ּ的方法。利用文字符号可以到正则表?
式保持ؓ常数。例如,如果你在一个@环中使用文字W号来构造一个正则表辑ּQ正则表辑ּ不需q行
反复~译?
正则表达式对象构造器Q例如,new RegExp("ab+c")Q提供正则表辑ּ的运行时~译。当你知道正
则表辑ּ的模式会变化的时候,应该使用构造函敎ͼ或者你不知道正则表辑ּ的模式,而它们是从另?
的源获得的时候,比如q戯入时。一旦你定义好了正则表达式,该正则表辑ּ可在M地方使用Q?
q且可以改变Q你可以使用~译Ҏ来编译一个新的正则表辑ּ以便重新使用?
一个分预先定义的RegExp对象可以在每个窗口中使用Q也是_每个分离的JavascriptU程q?
行以获得自己的RegExp对象。因为每个脚本在一个线E中是不可中断的Q这q保了不同的脚本不会覆
盖RegExp对象的倹{?
预定义的RegExp对象包含的静态属性:input, multiline, lastMatch,lastParen, leftContext,
rightContext, 以及?1?9。input和multiline属性能被预设。其它静态属性的值是在执行个别正?
表达式对象的exec和testҎ后,且在执行字符串的match和replaceҎ后设|的?
属?
注意RegExp对象的几个属性既有长名字又有短名?象Perl)。这些名字都是指向相同的倹{Perl?
一U编E语aQ而Javascript模仿了它的正则表辑ּ?
属?1, ..., $9
取得匚w的子Ԍ如果有的?
属?_
参考input
属?*
参考multiline
属?&
参考lastMatch
属?+
参考lastParen
属?`
参考leftContext
属?'
参考rightContext
属性constructor
指定用来建立对象原型?
属性global
军_是否试正则表达式是否不能匹配所有的字符Ԍ或者只是与最先的冲突?
属性ignoreCase
军_试图匚w字符串的时候是否忽略大写
属性input
当正则表辑ּ被匹配的时候,为相反的字符丌Ӏ?
属性lastIndex
军_下一ơ匹配从那里开?
属性lastMatch
最后一个匹配的字符
属性lastParen
子串匚w的时候,最后一个parenthesizedQ如果有的话?
属性leftContext
最q一ơ匹配前的子丌Ӏ?
属性multiline
是否在串的多行中搜烦?
属性prototype
允许附加属性到所有的对象
属性rightContext
最q一ơ匹配后的的子串?
属性source
模式文本
Ҏ
compileҎ
~译一个正则表辑ּ对象
execҎ
q行正则表达式匹?
testҎ
试正则辑ּ匚w
toSourceҎ
q回一个对象的文字描述指定的对象;你可以用这个值来建立一个新的对象。不考虑Object.toS
ourceҎ?
toStringҎ
q回一个字W串描述指定的对象,不考虑Object.toString对象?
valueOfҎ
q回指定对角的原始倹{不考虑Object.valueOfҎ?
另外Q这个对象承了对象的watch和unwatchҎ
例子Q?
例1、下q示例脚本用replaceҎ来{换串中的单词。在替换的文本中Q脚本用全局 RegExp
对象?1?2属性的倹{注意,在作为第二个参数传递给replaceҎ的时候,RegExp对象?属性的?
U?
<script LANGUAGE="Javascript1.2">
re = /(w+)s(w+)/;
str = "John Smith";
newstr=str.replace(re,"$2, $1");
document.write(newstr)
</script>
昄l果Q?Smith, John".
例2、下q示例脚本中QRegExp.input由Change事g处理句柄讄。在getInfo函数中,exec Ҏ
使用RegExp.input的g为它的参敎ͼ注意RegExp预置?属性?
<script LANGUAGE="Javascript1.2">
function getInfo(abc)
{
re = /(w+)s(d+)/;
re.exec(abc.value);
window.alert(RegExp.$1 + ", your age is " + RegExp.$2);
}
</script>
误入你的姓和年龄,输入完后按回车键?
<FORM><INPUT TYPE="TEXT" NAME="NameAge" onChange="getInfo(this);"></FORM>
</HTML>
$1, ..., $9属?
用圆括号括着的匹配子Ԍ如果有的话?
是RegExp的属?
静态,只读
在Javascript 1.2, NES 3.0以上版本提供
描述Q因为input是静态属性,不是个别正则表达式对象的属性。你可以使用RegExp.input 讉K?
属性?
能加上圆括号的子串的数量不受限制Q但正则表达式对象只能保留最? 条。如果你要访问所有的
圆括号内的匹配字Ԍ你可以用返回的数组?
q些属性能用在RegExp.replaceҎ替换后的字符?输出l果)。当使用q种方式的时候,不用?
先考虑RegExp对象。下面给Z子。当正则表达式中没有包含圆括L时候,该脚本解释成$n的字面意
义?q里的n是一个正整数)?
例如Q?
下例脚本使用replace Ҏ来交换串中单词的位置。在替换后的文本字串中,脚本使用正则表达?
RegExp对象?1?2属性的倹{注意:当它们向replaceҎ传递参数的时候,q里没有考虑 $ 属性的
RegExp对象的名U?
<script LANGUAGE="Javascript1.2">
re = /(w+)s(w+)/;
str = "John Smith";
newstr=str.replace(re,"$2, $1");
document.write(newstr)
</script>
昄的输出结果ؓQSmith, John。?br />
正则表达式详qͼ二)
以下q些不是正则表达式的新增对象请参阅对应的Javascript对象的属?$_属?参考input $*属?
参考multiline $&属?参考lastMatch $+属?参考lastParen $`属?
参考leftContext $'属?参考rightContext compileҎ 在脚本运行期间编译正则表辑ּ对象
属于RegExp的方?在Javascript 1.2, NES 3.0以上版本提供 语法Q?
regexp.compile(pattern[, flags]) 以数Q?regexp 正则表达式的名称Q可以是变量名或文字丌Ӏ?
pattern 正则表达式的定义文本?flags 如果指定的话Q可以是下面其中的一个: "g": 匚w所有可能的字串
"i": 忽略大小?"gi": 匚w所有可能的字串及忽略大写 描述Q?
使用compileҎ来编译一个正则表辑ּ created with the RegExp constructor function。这?
强制正则表辑ּ只编译一ơ,而不是每ơ遇到正则表辑ּ的时候都~译一ơ。当你确认正则表辑ּ?
保持不变的时候可使用compile Ҏ来编译它(在获得它的匹配模式后)Q这样就可以在脚本中重复多次使用它?
你亦可以使用compile Ҏ来改变在q行期间改变正则表达式。例如,假如正则表达式发生变化,
你可以用compileҎ来重新编译该对象来提高用效率?
使用该方法将改变正则表达式的source, global和ignoreCasesource属性的倹{?constructor
指出建立对象原型的function。注意这个属性的值由函数本n提供Q而不是一个字串包含RegExp的name.Property提供。?
在Javascript 1.1, NES 2.0以上版本提供 ECMA版本ECMA-262 描述Q参考Object.constructor.
execҎ 在指定的字符串运行匹配搜索。返回一个结果数l?是RegExp的方法?
在Javascript 1.2, NES 3.0以上版本提供 语法Q?regexp.exec([str])regexp([str])
参数Q?regexpQ正则表辑ּ的名Uͼ可以是一个变量名或文字定义串。?
strQ要匚w正则表达式的字符Ԍ如果省略Q将使用RegExp.input的倹{?
描述Q就如在语法描述中的一P正则表达工的execҎ能够被直接调?使用regexp.exec(str))或者间接调?使用regexp(str))?
假如你只是运行以扑և是否匚wQ可以用String搜烦Ҏ?
假如匚w成功QexecҎq回一个数lƈ且更新正则表辑ּ对象属性的值和预先定义的正则表辑ּ对象、RegExp。如果匹配失败,execҎq回null?
L下例Q?<script LANGUAGE="Javascript1.2"> //匚w一个b接着一个或多个dQ再接着一个b
//忽略大小?myRe=/d(b+)(d)/ig; myArray = myRe.exec("cdbBdbsbz");
</script> 下面是该脚本的返回|对象 属?Index 描述 例子
myArray
myArray的内?["dbBd", "bB", "d"]
index
Z0的匹配index 1
input
原始字符?cdbBdbsbz
[0]
最后匹配的字符 dbBd
[1], ...[n]
用圆括号括住的匹配字W串Q如果有的话。不限制括号的个数?[1] = bB
[2] = d
myRe
lastIndex
开始下ơ匹配操作的index?5
ignoreCase
指出"i"是否使用以忽略大写 true
global
指出是否使用"g"标记来进行匹配所有可能的字串 true
source
定义模式的文本字W串 d(b+)(d)
RegExp
lastMatch$&
最后匹配的字符 dbBd
leftContext$Q
最新匹配前面的子串 c
rightContext$'
最新匹配后面的子串 bsbz
$1, ...$9
圆括号内的匹配子Ԍ如果有的话。圆括号的个C受限Ӟ但RegExp只能保留最??$1 = bB
$2 = d
lastParen $+
最后一个加上圆括号的匹配子Ԍ如果有的?d
假如你的正则表达式用了"g"标记Q你可以多次使用exec Ҏ来连l匹配相同的丌Ӏ当你这样做
的时候,新的匚w从由正则表辑ּ的lastIndex 属性值确定的子串中开始。例如,假定你用下面的脚本Q?
<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> q个脚本昄如下l果Q?Found abb. Next match starts at 3
Found ab. Next match starts at 9 例子Q?
在下面的例子中,用户输入一个名字,脚本Ҏ输入执行匚w操作。接着查数l看是否和其它用L名字匚w?
本脚本假定已注册的用L姓已l存q了数组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 输入你的姓然后按回R键?
<FORM><INPUT TYPE:"TEXT" NAME="FirstName" onChange="lookup(this);"></FORM>
</HTML> global属?正则表达式中是否使用?g"标记?RegExp属性,只读
在Javascript 1.2, NES 3.0以上版本提供 描述Q?global是一个个别正则表辑ּ对象的属?
如果使用?g"标记Qglobal的gؓtrueQ否则ؓ false?g"标记指定正则表达式测试所有可能的匚w?
你不能直接改变该属性的|但可以调用compileҎ来改变它?ignoreCase 查正则表辑ּ是否使用?i"标记
RegExp属性,只读 在Javascript 1.2, NES 3.0以上版本提供 描述Q?
ignoreCase是个别正则表辑ּ对象的一个属性?
如果使用?i"标记Q则q回trueQ否则返回false?i"标记指示在进行匹配的时候忽略大写?
你不能直接改变该属性的|但可以通过调用compileҎ来改变它 input 指出正则表达式要试那个字串?_是这个属性的另一个名字?
RegExp的属性,静?在Javascript 1.2, NES 3.0以上版本提供
描述Q因为input是静态的Q不是某个个别的正则表达式对象的属性。你也可以?RegExp.input来表C?
如果没有l正则表辑ּ的exec或testҎ提供字符Ԍq且RegExp.input中有|则用它的值来调用该方法?
脚本或浏览器能够预置input属性。如果被预置了g调用exec?testҎ的时候没有提供字W串
则调用exec或test的时候用input的倹{input可以被浏览器以下面的方式讄Q?
当text表单域处理句柄被调用的时候,input被设|ؓ该text输入的字丌Ӏ?
当textarea表单域处理句柄被调用的时候,input被设|ؓtextarea域内输入的字丌Ӏ注意multili
ne亦被讄成true从而能匚w多行文本?当select表单域处理句柄被调用的时候,input被设|成selected text的倹{?
当链接对象的处理句柄被调用的时候,input被设|成<A HREF=...>?lt;/A>之间的字W串?
事g理现句柄处理完毕后,input属性的D清除?lastIndex 可读/可写的一个整数属性,指出下一ơ匹配从哪里开始?
RegExp的属?在Javascript 1.2, NES 3.0以上版本提供
描述QlastIndex 是个别的正则表达式对象的属性?q个属性只有当正则表达式的"g"标记被用以q行全串匚w的时候才被设|。实行以下规则:
如果lastIndex大小字符串的长度Qregexp.test和regexp.execp|Q且lastIndex被设??
如果lastIndex{于字串的长度且正则表达式匹配空字符Ԍ则正则表辑ּ从lastIndex的位|开始匹配?
如果lastIndex{于字符串的长度且正则表辑ּ不匹配空字符Ԍ则正则表辑ּ不匹配inputQ且lastIndex被置??
否则QlastIndex被设|成最q一ơ匹配的下一炏V?例如Q按下面的顺序执行脚本: re = /(hi)?/g 匚wI字W串
re("hi") q回["hi", "hi"]QlastIndex|ؓ2
re("hi") q回[""]Q一个空数组Q它的下标ؓ0的元素就是匹配字W串。在q种情况下,q回I?
串是因ؓlastIndex{于2(且仍然是2)Qƈ?hi"的长度也??lastMatch 最后一ơ匹配字W串Q?&是同L意思?
RegExp的属性,静态,只读 在Javascript 1.2, NES 3.0以上版本提供
描述Q因为lastMatch是静态的Q所以它不是个别指定正则表达式的属性。你也可以用RegExp.lastMatch?lastParen
最后一ơ加上括L匚w字符Ԍ如果有的话?+是同L意思?RegExp属性,静态,只读
在Javascript 1.2, NES 3.0以上版本提供
描述Q因为lastParen是静态的Q它不是某个个别正则式的属性,你可以用RegExp.lastParen 表达同样的意思?
leftContext 最q一ơ匹配前面的子串Q?`h相同的意思?RegExp的属性,静态,只读
在Javascript 1.2, NES 3.0以上版本提供
描述Q因为leftContext是静态的Q不是某一个正则表辑ּ的属性,所以可以用RegExp.leftContext来表达想同的意思?
multiline 反映是否匚w多行文本Q?*是相同的意思?RegExp的属性,静?
在Javascript 1.2, NES 3.0以上版本提供
描述Q因为multiline是静态的Q而不是某个个别正则表辑ּ的属性,所以能够用RegExp.multiline表达相同的意思?
如果允许匚w多行文本Q则multiline为trueQ如果搜索必d换行时停止,则ؓfalse?
脚本或浏览器能够讄multiline属性。当一个textarea的事件处理句柄被调用的时候,multiline
被置为true。在事g处理句柄处理完毕后,multiline属性D清除。也是_如果你设|了multili
ne为trueQ则执行M的事件处理句柄后Qmultiline被置为false?prototype
描绘cȝ原型。你可以Ҏ要求使用prototype来增加类的属性或Ҏ。ؓ了获得prototypes 的资
料,请参阅RegExp的function.prototype.Property属性?从Javascript 1.1, NES 2.0版本开始提?
ECMA版本ECMA-262 rightContext 最后一ơ匹配的双的字W串Q?'是同L效果?
RegExp的属性,静态,只读 ?Javascript 1.2, NES 3.0以上版本开始提供?
描述Q因为rightContext是静态的Q不是某个个别正则表辑ַ的属性,可以使用RegExp.rightContext来达到相同的效果?
source 一个只d性,包含正则表达式定义的模式Q不包Lforward slashes?g"?i"标记?RegExp的属性,只读
从Javascript 1.2, NES 3.0以上版本开始提供?
描述Qsource是个别正则表辑ּ对象的属性,你不能直接改变它的|但可以通过调用compile Ҏ来改变它?test
执行指定字符串的正则表达式匹配搜索,q回true或false?RegExp的方?
从Javascript 1.2, NES 3.0以上版本开始提?语法Qregexp.test([str])
参数QregexpQ正则表辑ּ的名Uͼ可以是变量名或正则表辑ּ定义文字?
strQ要匚w的字W串Q如果省略,用RegExp.input的gؓ作参?
描述Q当你需要知道一个字W串能否匚w某个正则表达工,可以使用testҎ(与String.search?
法类?Q?Z获得更多的信?但速度变?Q可以用execҎ(与String.matchҎcM)?例子Q下面的例子昄test是否成功的提C:
function testinput(re, str){
if (re.test(str)) midstring = " contains ";
else midstring = " does not contain ";
document.write (str + midstring + re.source); } toSource
q回一个字W串象征对象的源?RegExp的方?从Javascript 1.3以上版本开始提?语法QtoSource()
参数Q没?描述QtoSourceҎq回下述的| 对于内置的RegExp对象QtoSourceq回下面的字W象征源码不可用Q?
function Boolean(){ [native code] }
在RegExp场合? toSourceq回象征源码的字W串Q通常q个Ҏ是由Javascript内部自动调用而不是不代码中显式调用?
更多LObject.toSource toString q回描绘指定对象的字W串?RegExp的方?
从Javascript 1.1, NES 2.0开始提?ECMA版本ECMA-262 语法QtoString() 参数Q无
描述QRegExp对象不考虑Object对象的toStringҎQ它不承Object.toStringQ对于RegExp ?
象,toStringҎq回一个代表该对象的字W串?例如Q下面的例子昄象征RegExp对象的字W串
myExp = new RegExp("a+b+c"); alert(myExp.toString())
displays "/a+b+c/" 更多LQObject.toString valueOf q回一个RegExp对象的原始?
RegExp的方?从Javascript 1.1版本开始提?ECMA版本QECMA-262 语法QvalueOf()
参数Q无 描述QRegExp的valueOfҎ以字W串形式q回RegExp对象的原始|q个gRegExp.toString相等?
该方法通常由Javascript内部自动调用而不是显式调?例子Q?myExp = new RegExp("a+b+c");
alert(myExp.valueOf()) displays "/a+b+c/"

]]>