javascript - 如何在 JS 中从正则表达式获取选定的 str.replace 值

标签 javascript jquery html regex

好的,我知道标题可能有点令人困惑,让我详细说明一下。 首先,我制作一个 BBCode 输入部分。然后它将代码从 BBCode 传输到 HTML。现在的问题是我遇到的问题很少。在继续之前让我发布我的代码:

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 标记中?你明白我的问题是什么吗? :)请帮忙,谢谢!!

最佳答案

使用$2获取第二个选定的组

var newer = $('#my_textarea').val().replace(/(\[(b|u|i)\])/gi, '<$2>');

一个了解和创建正则表达式的好网站:https://regex101.com/

要捕获 [b],[u],[i] 以及 [\b],[\u],[\i] 使用以下命令:

var newer = $('#my_textarea').val().replace(/(\[((\/?)(b|u|i))\])/gi, '<$2>');

关于javascript - 如何在 JS 中从正则表达式获取选定的 str.replace 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29929760/

相关文章:

javascript - 如何在排序比较过程中忽略值中的 "-"和 "."字符?

php - 未应用 TinyMCE 自定义样式(尽管技术上可行)

javascript - jquery 中的 .find().html() 在 iframe 中使用时始终返回 null

javascript - 可能的?当 javascript 文件中的函数被触发时,它会让 jQuery 文件中的函数知道吗?

javascript - 如何使用 JQuery 提取 URL 中最后一个/分隔符之前的最后一个值

javascript - 过滤通过 Nivo 条形图的数据

javascript - 如何从由DiagramBuilder.toJSON()返回的JSON创建AlloyUIDiagramBuilder?

javascript - 不同机器上的两个浏览器查看同一个页面

html - Wii 互联网 channel (Opera) 的 SVG

php - 在 php domxpath 中,我想用 html 标签和文本获取我的完整页脚