我的任务是实现自己的标签,使文本加粗、下划线或删除线以及任何嵌套。像一个
*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 插件)实现该任务?如果有任何帮助,我将不胜感激。