Привет, ребята, я пытался сегодня сделать bbcode, но я действительно не могу понять регулярное выражение, я хотел преобразовать html-код в bbcode, попытался несколько попыток, но не работал вообще.
Вот код HTML:
<SPAN STYLE="FONT-SIZE:18PX">Hello</SPAN>
---or---
<span style="font-size:18px">Hello</span>
Я хотел создать регулярное выражение/замену, которое преобразует его в
[size=18]Hello[/size]
Можно ли делать только с регулярным выражением/заменой? Я попытался использовать некоторые библиотеки, чтобы сделать это, но также не удалось.
Здесь функция, которую я использовал
function HTMLtoBBCode(text) {
text = text.replace(/<b>/gi, "[b]");
text = text.replace(/<\/b>/gi, "[/b]");
text = text.replace(/<i>/gi, "[i]");
text = text.replace(/<\/i>/gi, "[/i]");
text = text.replace(/<u>/gi, "[u]");
text = text.replace(/<\/u>/gi, "[/u]");
text = text.replace(/<br>/gi, "\n\r");
text = text.replace(/<br(.*?)\/>/gi, "\n\r");
text = text.replace(/<img[^>]*?src="([^"]*?)"[^>]*?>/gi, "[img]$1[/img]");
text = text.replace(/<font[^>]*?size="?([^">]*?)"?>((?:[\s\S](?!<font[^>]*?size))*?)<\/font>/gi, "[size=$1]$2[/size]");
return text;
}
text = text.replace(/<span style="font-size:(\d+)px">([\s\S]*?)<\/span>/gi, "[size=$1]$2[/size]");
Заранее спасибо.
Шаблон:
<span style="font-size:(\d+)px">(.+?)</span>
Замена:
[size=$1]$2[/size]
Это предполагает флаг ignoreCase.
<span style="font-size:18px; color:blue;">