大家好,我今天一直在尝试制作 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]");
提前致谢。