[英]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.