好的,我理解标题可能有点令人困惑,让我详细说明。 所以开始我正在制作一个BBCode输入部分。然后它会将代码从BBCode传输到HTML。现在的问题是我遇到了MINIMAL问题。让我在继续之前发布我的代码:
var newer = $('#my_textarea').val().replace(/\[b\]/gi, '<b>');
现在让我这样说,它会使用[b]
代码正确替换<b>
代码。我的问题是我不知道如何为所有标签做到这一点。我试过用这个缩短代码:
var newer = $('#my_textarea').val().replace(/\[(?:b|u|i)\]/gi, '<???>');
然后它将使用正确的HTML标记替换所有标记(粗体,下划线和斜体)。然而,我该怎么做呢?如何使用找到的BBCode标记替换HTML标记?我的意思是正则表达式(?:b|u|i)
的这一部分,它选择三个字母中的任何一个,我怎么能将相同的字母添加到HTML标签?你明白我的问题是什么吗? :)请帮忙,谢谢!!
答案 0 :(得分:3)
使用$2
获取第二个选定的组
var newer = $('#my_textarea').val().replace(/(\[(b|u|i)\])/gi, '<$2>');
了解和创建RegEx的好网站:https://regex101.com/
要同时抓住[b],[u],[i]
以及[\b],[\u],[\i]
,请使用以下内容:
var newer = $('#my_textarea').val().replace(/(\[((\/?)(b|u|i))\])/gi, '<$2>');
答案 1 :(得分:0)
下面的正则表达式会将BBCode转换为HTML:
result = subject.replace(/\[(b|i|p)\](.*?)\[\/(b|i|p)\]/g, "<$1>$2</$3>");
您需要添加更多标签,但您明白了。
演示