用标签替换字符(例如* hi *到<p> hi </p>)

时间:2013-09-28 22:05:43

标签: javascript regex

我正在尝试用标签(**)替换每组通配符(<p></p>)。

例如,如果我有:

var stuff = array(
    "The color *blue*!!!!",
    "The color *red*!!!!",
    "The colors *red* and *blue*!!!!"
);

我想输出:

var stuff = array(
    "The color <p>blue</p>!!!!",
    "The color <p>red</p>!!!!",
    "The colors <p>red</p> and <p>blue</p>!!!!"
);

最有效的方法是什么?

2 个答案:

答案 0 :(得分:3)

为什么不运行一个简单的循环:

for(var i=0; i < stuff.length; i++) {
   stuff[i] = stuff[i].replace(/[*]([^*]+)[*]/g, '<p>$1</p>');
}

答案 1 :(得分:1)

尝试

var stuff = [
    "The color *blue*!!!!",
    "The color *red*!!!!",
    "The colors *red* and *blue*!!!!"
];


 var res  = stuff.map(function(o){
     return o.replace(/\*(.*?)\*/g,'<p>$1</p>');
 });

或只是一个循环

 for(var i=0, len = stuff.length; i<len; i++){
      stuff[i] = stuff[i].replace(/\*(.*?)\*/g,'<p>$1</p>');
  }

<强> Fiddle