您的位置:首页 > 教程资讯 > 皇冠体育的网址 > 正则表达式 > 正则表达式详述 四

正则表达式详述 四

发布于:2016-06-22 10:48:01   分享到:

以下这些不是正则表达式的新增对象请参阅对应的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。?
请看下例:


??//匹配一个b接着一个或多个d,再接着一个b?
//忽略大小写?myRe=/d(b+)(d)/ig;?myArray?=?myRe.exec("cdbBdbsbz");?
?下面是该脚本的返回值:对象?属性/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?属性值确定的子串中开始。
例如,假定你使用下面的脚本:?

?
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)?
?


这个脚本显示如下结果:?
Found?abb.?Next?match?starts?at?3?
Found?ab.?Next?match?starts?at?9?


例子:?
在下面的例子中,用户输入一个名字,脚本根据输入执行匹配操作。接着检查数组看是否和其它用户的名字匹配。?
本脚本假定已注册的用户的姓已经存进了数组A中,或许从一个数据库中取得。?
?
?A?=?["zhao","qian","sun","li","liang"]?
function?lookup()?{?firstName?=?/\w+/i();?if?(!firstName)?
window.alert?(RegExp.input?+?"非法输入");?else?{?count=0;?
for?(i=0;i?输入你的姓然后按回车键。?

?
?


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被设置成和之间的字符串。?
事件理现句柄处理完毕后,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/"?

标签:

正则表达式

关于我们  加入我们  版权声明  商务合作  友情链接  网站地图  站长统计

脚本大全-脚本语言之家-版权所有 

Copyright (C) 2016 jiaoben.net, All Rights Reserved