我有任務實現自己的標籤,使文本大膽,下劃線或刪除任何嵌套。 像如何實現在文本中解析自己的html標籤
*bold text* _underlinetext_ -strikethrough-
而且我需要讓自己的超級鏈接一樣,來到一個
[link | http://stackoverflow.com]
首先想到的 - 它適用於正則表達式。代碼:
View.prototype.parseText = function(text) {
text = text.replace(/\*([^\*]+)\*/g, '<b>$1</b>');
text = text.replace(/\_([^\_]+)\_/g, '<u>$1</u>');
text = text.replace(/\-([^\-]+)\-/g, '<s>$1</s>');
text = text.replace(/\[([^\|].+)\|(.+)\]/g, '<a href="$2">$1</a>');
return text;};
它的工作,但我需要可擴展性。正則表達式不是一個好主意,因爲它是硬編碼的。如何用有限狀態機(或任何jQuery插件)來實現該任務)?我會很感激任何幫助。
任何類型的解析將涉及硬編碼。除非你試圖建立一個能夠動態確定應該被解析成HTML的系統嗎?這會變得非常迅速。 – Corbin
其實,它是。 – milgoff
嘗試查看現有解析器以瞭解其工作原理。 –