2012-06-24 52 views
0

我有一个在线文本编辑器,制作得非常好,但它目前不支持图像。将属性添加到自定义HTML键[img] /path/to/image.jpg [/ img]

我现在有这个,不觉得它是一个很好的方法。

var = txt = "some text here oh and here's my image! [img]linktoimage.jpg[/img]"; 
var = txt.replace(/[img]/g, '<img src="'); 
var = txt.replace(/[/img]/g, '" alt="" />'); 
return txt; 

我该如何去添加属性?

回答

2

我会用一个替换功能,替换字符串作为一个整体,并更轻松地构建替换字符串:

txt = txt.replace(/\[img\](.*?)\[\/img\]/g, function(match, src) { 
    return '<img src="' + src + '" alt="" />'; 
}); 

欲了解更多信息,看看在MDN documentation

+1

我闻到语法错误。你忘了在'[/ img]'中跳过'/'。你也需要逃避'['和']'(尽管后者并不是真的有必要) – ThiefMaster

+0

@ ThiefMaster:谢谢,你是对的......修好了! –

+0

有趣..它根本不是一个语法错误(但当然还是错误的)。显然即使'/'也不需要在字符类中转义。我期望JS解析器与正则表达式解析器更加分离。 – ThiefMaster