用基于文本的img替换文本

时间:2015-07-16 23:37:29

标签: jquery

我想用一个img替换文本:

<li class='custom'>
 <legend>images:</legend>
 {[img.png][1desc][2desc]} {[img2.png][1desc2][2desc2]}
</li>

我希望它显示为:

<li class='custom'>
 <legend>images:</legend>
 <img src="img.png" title="1desc - 2desc"/> <img src="img2.png" title="1desc2 - 2desc2"/>
</li>

我正在使用的当前代码(不起作用):

<script>
function textToImg(theImg) {
  return theImg.replace(
           /\{\s*[\s*(.*?)\s*]\s*[\s*(.*?)\s*]\s*[\s*(.*?)\s*]\s*\}/gi,
           '<img src="$1" title="$2 - $3"/>'
         );
}

jQuery('li.custom').each(function() {

    current = jQuery(this);

    IMG = textToImg(current.html());

    current.html(IMG);

});
</script>

1 个答案:

答案 0 :(得分:1)

看起来正则表达式中的[]未正确转义。试试这个(demo):

function textToImg(theImg) {
  return theImg.replace(
           /\{\s*\[\s*(.*?)\s*\]\s*\[\s*(.*?)\s*\]\s*\[\s*(.*?)\s*\]\s*\}/gi,
           '<img src="$1" title="$2 - $3"/>'
         );
}