テキストを太字、下線、またはネスティングで取り消し線にする独自のタグを実現するタスクがあります。のような
*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 プラグイン) でそのタスクを実現するにはどうすればよいですか? どんな助けにも感謝します。