js中很少使用js的正则表达式,也就是说,它也是一种判断,比如邮件名等等。互联网上有很多代码,很少有研究。

顺便说一下,最近的开发遇到了一些使用正则表达式的需要。

定义正则表达式对象有两种方法:

1。第一个定义:

新的正则表达式(模式、属性);例如,VAR reg = new RegExp(ABC

模式是表达内容的表达,如ABC的匹配。

属性:G,全局匹配,我不区分大小写,m执行多行匹配,其中大部分是G和i

2,第二个定义:模式/属性。

例如;

这里不再解释正则表达式规则的一些规则,只记录执行和匹配之间的差异。

1,执行程序是正则表达式的方法,而不是字符串方法,它的参数是字符串,如下所示:

以上
VaR reg = new RegExp(ABC);
var str =3abc4,5abc6 ;
Reg.exec(STR);

2,匹配是一种字符串匹配正则表达式规则的方法,其参数是正则表达式,如

VaR reg = new RegExp(ABC);
var str =3abc4,5abc6 ;
Str.match(章);

3、执行和匹配都是数组;

如果正则表达式的表达式没有子表达式(括号(如,C)),如果有匹配,则返回第一个匹配字符串内容。此时,数组中只有一个元素,如果没有匹配,则返回null。

VaR reg = new RegExp(ABC);
var str =3abc4,5abc6 ;
警报(reg.exec(STR));
警报(str.match(REG));

如果你执行上面的代码,你会发现这两个都是一样的:abc,

4。如果正则表达式对象定义为全局匹配,如:

VaR reg = new RegExp(ABC
var str =3abc4,5abc6 ;
警报(reg.exec(STR));
警报(str.match(REG));

ABC和ABC,ABC;因为比赛进行全局匹配查询;和执行如果没有找到匹配的子表达式只能返回。

5。当一个表达式包含一个子表达式,

VaR reg = new RegExp((BC));
var str =3abc4,5abc6 ;
警报(reg.exec(STR));
警报(str.match(REG));

你会发现这两个结果是:ABC,BC;

6。如果正则表达式对象定义为全局匹配

VaR reg = new RegExp((BC)
var str =3abc4,5abc6 ;
警报(reg.exec(STR));
警报(str.match(REG));

结果是ABC、BC和abc,

结论如下:

1,当正则表达式没有子表达式并定义为非全局匹配时,执行和匹配执行的结果是相同的,它返回第一个匹配字符串内容。

2,正则表达式没有子表达式,定义为全局匹配,执行和匹配执行多个匹配内容,并匹配返回多个元素数组。

三.当正则表达式有子表示一个孩子,被定义为一个非全局匹配,执行和比赛结果上第五例相同。

4,当正则表达式有子表达式并定义为全局匹配时,执行和匹配执行不同的结果。这时,匹配将忽略子表达式,只找到完整匹配的正则表达式并返回所有内容,如上述第六种情况。

也有人说,执行与全局的定义无关,匹配与全局相关,当定义为非全局时,两个结果相同。