珠峰培训

如何用正则表达式把目标替换成数组中的值

作者:

2011-12-06 21:58:01

360

javascript中的字符串处理方法replace一般情况下我们都知道它有两个参数,一个是正则,第二个是用来替换的字符串。其实第二个参数也可以是个方法,这个方法会被自动运行,把运行的返回值当做替换的字符串。看下面的面试题【珠峰培训培训课堂示例】

面试题:

 

请使用正则表达式,来将如下的字符串中的占位符都换成数组中的内容,字符串为:My name is{0}.I am{1} years old.I am in class{2} grade{3}.给定的数组为:

         var arrayx=new Array();

         arrayx[0]='lilei';

         arrayx[1]=13;

         arrayx[2]=4;

         arrayx[3]=6;

 

这个面试题就要用到字符串处理方法replace的另外一种用法,这个方法的第二个参数可以是一个方法,答案如下:

 

             var reg=/{\d}/g;//正则,用来匹配字符串里的花括号和花括号里的数字

               var i=0;

 

 

var str2=str.replace(reg,function(){

i++;

return ' '+ arrayx[i-1]

});

alert(str2);

不 用正则表达式的方法【陈雪兰同学提供】:
 

for(var i=0;i<arrayx.length;i++){

    str = str.replace('{'+i+'}', arrayx[i]);

}