[英]How parse a comment with custom markup to html markup using regex javascript
[英]Parsing Wiki markup in Javascript using regex
我正在尝试使用Javascript Creole Wiki Markup Parser解析一些Wiki样式的标记。 我正在尝试扩展解析器来解析div标签,如下所示:
标记:<< any_content_here <<
HTML: <div class="left">content</div
>
标记:>> any_content_here >>
HTML: <div class="right">content</div>
标记:^^ any_content_here ^^
HTML: <div class="horz">content</div>
解析器使用正则表达式解析标记,但是regex绝对不是我的强项,并且由于js文件几乎没有注释,因此我发现编辑起来特别困难。 我已经在这个人的博客上发布了一些与此相关的帮助,但是由于该帖子大约有2年的历史,所以我希望不久后都不会收到回复。
关于自定义此设置的任何帮助,或者如果有人可以指出已经支持div的JavaScript解析器,将不胜感激。
如果您不关心嵌套,则甚至不需要正则表达式。 只需将“ <<
”替换为“ <div class='left'>
”等。
为了允许嵌套,您将必须(1)更改标记,使结尾与开头有所不同(例如<L>
content </L>
),并且(2)运行正则表达式的次数应与层数相同。 正则表达式(用于左div)将是:
<L>(((?!</?L>).)*)</L>
和替换字符串:
<div class="left">$1</div>
这是一个将解析所有级别的函数:
function parseLeft(markup) {
var regex = /<L>(((?!<\/?L>).)*)<\/L>/g;
out = markup.replace(regex, '<div class="left">$1</div>');
if (out.length == markup.length) {
return out;
} else {
return parseLeft(out);
}
}
实际示例:
> parseLeft('<L> Outer div <L>inner div</L>outer again </L>');
<div class="left"> Outer div <div class="left">inner div</div>outer again </div>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.