正则表达式易错点,再整理一遍

原创 18672293959 随笔 js 221阅读 2017-05-22 00:04:03 举报

1.字符串的match方法:加不加全局属性“g”
javascript 代码

输出结果是:["your", "you"]
javascript 代码

输出结果是:["your", "her"]

剖析原因:1.match中正则表达式没有添加全局属性返回的是一个数组或是null(没有匹配项);若返回的是数组,只查找一次,则数组第一项是匹配 整个正则表达式匹配的结
果, 其余项包含正则表达式各个捕获组匹配的内容;
2.match中正则表达式添加全局属性返回的是全局所有匹配项组成的数组,不包含捕获组查找多次,返回所有的匹配项。

2,正则表达式的exec方法:加不加全局属性“g”
javascript 代码

输出结果是:["your", "you"]
javascript代码

输出结果是:["your", "you"]
javascript 代码

输出结果是:["you", "he"]

剖析原因:1.对于正则表达式的exec方法,如果不用于循环,加不加全局属性“g",返回的结果都一样,都只是执行查找一次。返回的数组或null(没有匹配项),
第一项为整体匹配项,其余项为捕获组匹配项;
2.如果用于循环,需要添加全局属性“g",每次循环从上次匹配的位置继续查找;不加上的话,每次循环还是从头查找,返回的结果每次都一样没有意义,还有可能陷入死循环。

评论 ( 0 )
最新评论
暂无评论

赶紧努力消灭 0 回复