正则表达式☞相干函数

正则表达式对象要领

test要领

var regexp1 = /a/g;
var regexp2 = /a/;
var str = 'abcd';
regexp1.test(str); true
regexp1.test(str); false
regexp1.test(str); true
regexp2.test(str); true
regexp2.test(str); true

当正则示意式是全局形式时,每次挪用都邑重置正则表达式对象的lastIndex属性,下一次挪用test要领的时刻,将会从lastIndex开始查找;非全局形式时,lastIndex属性一直为0

exec要领

var reg = /a/g;
var strs = 'abcdabcdabcd';
reg.exec(strs); ["a", index: 0, input: "abcdabcdabcd"]
reg.exec(strs); ["a", index: 4, input: "abcdabcdabcd"]
reg.exec(strs); ["a", index: 8, input: "abcdabcdabcd"]
reg.exec(strs); null
reg.exec(strs); ["a", index: 0, input: "abcdabcdabcd"]
var reg1 = /a/;
reg1.exec(strs); ["a", index: 0, input: "abcdabcdabcd"]
reg1.exec(strs); ["a", index: 0, input: "abcdabcdabcd"]
reg1.exec(strs); ["a", index: 0, input: "abcdabcdabcd"]

当正则示意式是全局形式时,每次挪用都邑重置正则表达式对象的lastIndex属性,下一次挪用test要领的时刻,将会从lastIndex开始查找;非全局形式时,lastIndex属性一直为0。然则不论正则表达式是全局形式还黑白全局形式,都只返回一个婚配项的相干信息,区分于背面说到的match要领

字符串与正则表达式相干的要领

match要领

var reg = /a/g;
var reg1 = /a/;
var strs = 'abcdabcdabcd';
strs.match(reg); ["a", "a", "a"]
strs.match(reg1); ["a", index: 0, input: "abcdabcdabcd"]
strs.match(reg1); ["a", index: 0, input: "abcdabcdabcd"]

当正则示意式是全局形式时,会把一切的婚配项都构成数组返返来;非全局形式时,只返回婚配的第一项。

search要领

var reg = /a/g;
var reg1 = /a/;
var strs = 'abcdabcdabcd';
strs.search(reg); 0
strs.search(reg); 0
strs.search(reg); 0
strs.search(reg1); 0
strs.search(reg1); 0
strs.search(reg1); 0

不论正则示意式是全局形式还黑白全局形式,只返回婚配的第一项。

replace要领

var reg = /a/g;
var reg1 = /a/;
var strs = 'abcdabcdabcd';
strs.replace(reg, '&'); "&bcd&bcd&bcd"
strs.replace(reg1, '&'); "&bcdabcdabcd"

假如正则示意式是全局形式,替代一切婚配的字符串,假如黑白全局形式,只替代婚配的第一项。
字符串与正则相干的三个要领都不会转变正则表达式的属性,不会转变lastIndex的值

    原文作者:shadowQiao
    原文地址: https://segmentfault.com/a/1190000012896116
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞