$_属性参考input
$*属性参考multiline
$&属性参考lastMatch
$+属性参考lastParen
$`属性参考leftContext
$'属性参考rightContextcompile方法
在脚本运行期间编译正则表达式对象属于RegExp的方法
在Javascript1.2,NES3.0以上版本提供
语法:
regexp.compile(pattern[,flags])以数:
regexp正则表达式的名称,可以是变量名或文字串。
pattern正则表达式的定义文本。
flags如果指定的话,可以是下面其中的一个:
"g":匹配所有可能的字串;"i":忽略大小写;"gi":匹配所有可能的字串及忽略大小写描述:
使用compile方法来编译一个正则表达式createdwiththeRegExpconstructorfunction。这样就强制正则表达式只编译一次,而不是每次遇到正则表达式的时候都编译一次。当你确认正则表达式能保持不变的时候可使用compile方法来编译它(在获得它的匹配模式后),这样就可以在脚本中重复多次使用它。
你亦可以使用compile方法来改变在运行期间改变正则表达式。例如,假如正则表达式发生变化,你可以使用compile方法来重新编译该对象来提高使用效率。使用该方法将改变正则表达式的source,global和ignoreCasesource属性的值。constructor指出建立对象原型的function。注意这个属性的值由函数本身提供,而不是一个字串包含RegExp的name.Property提供。
在Javascript1.1,NES2.0以上版本提供ECMA版本ECMA-262
描述:
参考Object.constructor.exec方法在指定的字符串运行匹配搜索。返回一个结果数组。
是RegExp的方法
在Javascript1.2,NES3.0以上版本提供
语法:regexp.exec([str])regexp([str])
参数:regexp,正则表达式的名称,可以是一个变量名或文字定义串。
str,要匹配正则表达式的字符串,如果省略,将使用RegExp.input的值。
描述:就如在语法描述中的一样,正则表达工的exec方法能够被直接调用(使用regexp.exec(str))或者间接调用(使用regexp(str))。
假如你只是运行以找出是否匹配,可以使用String搜索方法。
假如匹配成功,exec方法返回一个数组并且更新正则表达式对象属性的值和预先定义的正则表达式对象、RegExp。如果匹配失败,exec方法返回null。
请看下例:
//忽略大小写myRe=/d(b+)(d)/ig;myArray=myRe.exec("cdbBdbsbz");
下面是该脚本的返回值:对象属性/Index描述例子
myArray
myArray的内容["dbBd","bB","d"]
index
基于0的匹配index1
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属性值确定的子串中开始。
例如,假定你使用下面的脚本:
myRe=/ab*/g;str="abbcdefabh"
myArray=myRe.exec(str);
document.writeln("Found"+myArray[0]+".Nextmatchstartsat"+myRe.lastIndex)
mySecondArray=myRe.exec(str);
document.writeln("Found"+mySecondArray[0]+".Nextmatchstartsat"+myRe.lastIndex)
这个脚本显示如下结果:
Foundabb.Nextmatchstartsat3
Foundab.Nextmatchstartsat9
例子:
在下面的例子中,用户输入一个名字,脚本根据输入执行匹配操作。接着检查数组看是否和其它用户的名字匹配。
本脚本假定已注册的用户的姓已经存进了数组A中,或许从一个数据库中取得。
functionlookup(){firstName=/w+/i();if(!firstName)
window.alert(RegExp.input+"非法输入");else{count=0;
for(i=0;i输入你的姓然后按回车键。