利用exec()可以提取到某一段字符串中的指定的值,比如有下面这样一行字符串:
a='-aaaa-bbbb-cccc-';
想要分别提取其中的连续的字符,即“aaaa”、“bbbb”、“cccc”,书写正则表达式如下,并利用exec()函数匹配结果:
a='-aaaa-bbbb-cccc-';
patt=/-(.*?)-(.*?)-(.*?)-/;
patt.exec(a);
程序返回的数组如下:
["-aaaa-bbbb-cccc-", "aaaa", "bbbb", "cccc", index: 1, input: "/-aaaa-bbbb-cccc-/", groups: undefined]
那么如何在字符串中将“bbbb”替换为“eeee”呢,可以用字符串的replace()方法:
a='-aaaa-bbbb-cccc-';
patt=/-(.*?)-(.*?)-(.*?)-/;
b=a.replace(patt.exec(a)[2],'eeee');
注意a.replace()会返回正确的结果,但并不会去更改a自身的值,如果需要存储结果,那么则需要另行提供一个变量,以下是a、b在控制台中的展现值:
//a的值
"-aaaa-bbbb-cccc-"
//b的值
"-aaaa-eeee-cccc-"