JS正则表达式中测试、执行和匹配方法的区别
JS正则表达式中测试、执行和匹配方法的区别测试
测试返回布尔值,以找出相应字符串中是否存在模式。
var str =1a1b1c ;
VaR reg = new RegExp(1。
警报(reg.test(STR)); / /真的
exec
执行器查找并返回当前匹配结果并以数组的形式返回。
var str =1a1b1c ;
VaR reg = new RegExp(1。
var arr = reg.exec(STR);
如果没有模式,ARR是无效的,或者是1长arr数组,它的值是当前的比赛。Arr也有三个属性:对指数当前匹配位置;对当前lastIndex比赛结束的位置(指数+当前匹配的长度);输入,如在前面的例子中,输入结构
exec方法如果G是由指定的参数g的影响,以执行下一个电话将开始寻找从最后匹配的lastIndex。
var str =1a1b1c ;
VaR reg = new RegExp(1。
警报(reg.exec(STR){ 0 });
警报(reg.exec(STR){ 0 });
以上两个输出都是1A。现在看看指定的参数g:
var str =1a1b1c ;
VaR reg = new RegExp(1。
警报(reg.exec(STR){ 0 });
警报(reg.exec(STR){ 0 });
第一个输出是1a,第二个输出是1b。
比赛
匹配是字符串对象的一种方法。
var str =1a1b1c ;
VaR reg = new RegExp(1。
警报(str.match(REG));
比赛有点像执行,但执行是RegExp对象的方法;数学是字符串对象的方法。两者之间存在差异,这是参数G的解释
如果指定了参数g,则匹配将返回所有结果一次。
var str =1a1b1c ;
VaR reg = new RegExp(1。
警报(str.match(REG));
/ /警报(str.match(REG)); / /上面语句的结果是相同的
这个结果是一个包含三个元素的数组:1a,1b,1C。
正则表达式通常用于Javascript,但正则表达式中经常使用匹配和测试函数。当然,这里有一个代码实例,用来区分两个函数。
匹配的例子
复制代码代码如下所示:
var str =abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz ;
VaR regexp = / / GI A-E } {;
VaR RS = str.match(正则表达式);
/ / RS =阵列(A,B,C,D,E,A,B,C,D,E′);
测试实例
复制代码代码如下所示:
var str =abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz ;
VaR regexp = / / GI A-E } {;
VaR RS = regexp.test(STR);
true;布尔值
EXC的例子
复制代码代码如下所示:
var str =abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz ;
VaR regexp = / / GI A-E } {;
VaR RS;
而(((RS = regexp.exec(STR))!= null)
{
document.write(RS);
document.write(regexp。lastIndex);
document.write();
}
输出
---------------------------------
1
B 2
C 3
D 4
E 5
27
B 28
C 29
D 30
E 31
另一个交换的例子
复制代码代码如下所示:
VaR regexp = / / G AB *;
var str =abbcdefabh ;
VaR RS;
而(((RS = regexp.exec(STR))!= null)
{
document.write(RS);
document.write(regexp。lastIndex);
document.write();
}
输出
---------------------------------
ABB 3
AB 9