分类导航
document.write(newstr)
显示结果:\
例2、下述示例脚本中,RegExp.input由Change事件处理句柄设置。在getInfo函数中,exec 方法
使用RegExp.input的值作为它的参数,注意RegExp预置了$属性。
请输入你的姓和年龄,输入完后按回车键。
$1, ..., $9属性
用圆括号括着的匹配子串,如果有的话。 是RegExp的属性 静态,只读
在JavaScript 1.2, NES 3.0以上版本提供
描述:因为input是静态属性,不是个别正则表达式对象的属性。你可以使用RegExp.input 访问该属性。
能加上圆括号的子串的数量不受限制,但正则表达式对象只能保留最后9 条。如果你要访问所有的圆括号内的匹配字串,你可以使用返回的数组。
这些属性能用在RegExp.replace方法替换后的字符串(输出结果)。当使用这种方式的时候,不用预先考虑RegExp对象。下面给出例子。当正则表达式中没有包含圆括号的时候,该脚本解释成$n的字面意义。(这里的n是一个正整数)。 例如:
下例脚本使用replace 方法来交换串中单词的位置。在替换后的文本字串中,脚本使用正则表达式
RegExp对象的$1和$2属性的值。注意:当它们向replace方法传递参数的时候,这里没有考虑 $ 属性的
RegExp对象的名称。
显示的输出结果为:Smith, John。
正则表达式regular expression详述(二) 正则表达式详述(二)
以下这些不是正则表达式的新增对象请参阅对应的JavaScript对象的属性 $_属性参考input $*属性
参考multiline $&属性参考lastMatch $+属性参考lastParen $`属性
参考leftContext $'属性参考rightContext compile方法在脚本运行期间编译正则表达式对象 属于RegExp的方法在JavaScript 1.2, NES 3.0以上版本提供语法:
regexp.compile(pattern[, flags]) 以数: regexp 正则表达式的名称,可以是变量名或文字串。
pattern 正则表达式的定义文本。 flags 如果指定的话,可以是下面其中的一个: \匹配所有可能的字串
\忽略大小写 \匹配所有可能的字串及忽略大小写描述:
使用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。
请看下例:下面是该脚本的返回值:对象属性/Index 描述例子 myArray
myArray的内容 [\index
基于0的匹配index 1 input
原始字符串 cdbBdbsbz [0]
最后匹配的字符 dbBd
[1], ...[n]
用圆括号括住的匹配字符串,如果有的话。不限制括号的个数。 [1] = bB [2] = d myRe lastIndex
开始下次匹配操作的index值 5 ignoreCase
指出\是否使用以忽略大小写 true
global
指出是否使用\标记来进行匹配所有可能的字串 true source
定义模式的文本字符串 d(b+)(d) RegExp
lastMatch$&
最后匹配的字符 dbBd leftContext$\\Q
最新匹配前面的子串 c rightContext$'
最新匹配后面的子串 bsbz
$1, ...$9
圆括号内的匹配子串,如果有的话。圆括号的个数不受限制,但RegExp只能保留最后9个 $1 = bB $2 = d
lastParen $+
最后一个加上圆括号的匹配子串,如果有的话 d
假如你的正则表达式使用了\标记,你可以多次使用exec 方法来连续匹配相同的串。当你这样做的时候,新的匹配将从由正则表达式的lastIndex 属性值确定的子串中开始。例如,假定你使用下面的脚本:
这个脚本显示如下结果: Found abb. Next match starts at 3 Found ab. Next match starts at 9 例子:
在下面的例子中,用户输入一个名字,脚本根据输入执行匹配操作。接着检查数组看是否和其它用户的名字匹配。
本脚本假定已注册的用户的姓已经存进了数组A中,或许从一个数据库中取得。
相关推荐: