加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

正则表达式?相关函数

发布时间:2020-12-14 06:39:03 所属栏目:百科 来源:网络整理
导读:正则表达式对象方法 test方法 var regexp1 = /a/g;var regexp2 = /a/;var str = 'abcd';regexp1.test(str); trueregexp1.test(str); falseregexp1.test(str); trueregexp2.test(str); trueregexp2.test(str); true 当正则表示式是全局模式时,每次调用都会重

正则表达式对象方法

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,index: 8,input: "abcdabcdabcd"]
reg.exec(strs); null
reg.exec(strs); ["a",input: "abcdabcdabcd"]
var reg1 = /a/;
reg1.exec(strs); ["a",input: "abcdabcdabcd"]
reg1.exec(strs); ["a",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",input: "abcdabcdabcd"]
strs.match(reg1); ["a",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的值

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读