有没有办法将这两个 .replace
语句合并为一个?
.replace(/(\[((size=)(1|2|3|4|5|6))\])/gi, '<font size="$4">')
.replace(/(\[((\/)(size))\])/gi, '</font>')
不知道有没有办法。
最佳答案
您不能仅使用 1 个正则表达式,因为您有 2 个不同的替换字符串。但是,您可以使用 1 个正则表达式捕获这些标签,然后链接另一个 replace
改造“坏”的方法<font>
标记到最后一个。
我认为不会有空值的属性。
var re = /\[\/?size(?:=([1-6]))?\]/gi;
var str = '[size=6][/size]';
var subst = '<font size="$1">';
var result = str.replace(re, subst).replace(/<font size="">/, "</font>");
// Now, just display
document.getElementById("res").value = result;
<input id="res"/>
关于javascript - 使用 .replace 复杂 BBCode 到 HTML 正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30154908/