2012-06-24 83 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