数码资讯
js正则表达式执行与匹配的区别
js中很少使用js的正则表达式,也就是说,它也是一种判断,比如邮件名等等。互联网上有很多代码,很少有研究。 顺便说一下,最近的开发遇到了一些使用正则表达式的需要。 定义正则表达式对象有两种方法: 1。第一个定义: 新的正则表达式(模式、属性);例如,VAR reg = new RegExp(ABC
选购提示
关注价格、性能、续航、售后和真实使用场景,理性比较后再下单。
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,当正则表达式有子表达式并定义为全局匹配时,执行和匹配执行不同的结果。这时,匹配将忽略子表达式,只找到完整匹配的正则表达式并返回所有内容,如上述第六种情况。
也有人说,执行与全局的定义无关,匹配与全局相关,当定义为非全局时,两个结果相同。
顺便说一下,最近的开发遇到了一些使用正则表达式的需要。
定义正则表达式对象有两种方法:
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,当正则表达式有子表达式并定义为全局匹配时,执行和匹配执行不同的结果。这时,匹配将忽略子表达式,只找到完整匹配的正则表达式并返回所有内容,如上述第六种情况。
也有人说,执行与全局的定义无关,匹配与全局相关,当定义为非全局时,两个结果相同。
声明:本文内容用于数码产品信息整理与选购参考,具体价格、库存、售后政策以官方渠道和电商页面实时信息为准。