javascript - 使用 .replace 替换 <b><u> 和 <i> 标签的任意组合

标签 javascript

我正在使用.replace JavaScript 方法替换 <b> , <u><i>字符串中的标签。

var $text = 'This is some <b><u><i>bold underlined italic text</i></u></b>';
$text.replace(new RegExp('<(/?)b><(/?)u><(/?)i>','gmi'), '<div>').replace(new RegExp('<(/?)i><(/?)u><(/?)b>','gmi'), '</div>');

但是这并不理想,因为它只有在标签按该顺序排列时才有效。如果我的字符串是这样,它就不起作用,

var $text = 'This is some <i><b><u>bold underlined italic text</u></b></i>';

是否有一种方法可以允许这三个标签的任意组合?

感谢您的帮助。

最佳答案

为什么不创建三个 RegExp,然后只创建 $text.replace(regex1,'foo').replace(regex2,'foo').replace(regex3,'foo') 其中您的 regex1...3 将仅包含一个标签

虽然这是一种愚蠢的方法,但也是最简单且易于理解的方法,其他的可能是使用 |正则表达式中所有这些标签之间的量词..例如 编辑这将创建三倍的 foo,这是您不想要的。

$regexp = new RegExp('(<(/?)b>)|(<(/?)u>)|(<(/?)i>)','gmi');

编辑这个选项最适合你,根据@Vbyec,你可以用更好更短的方式写这个

$regexp = new RegExp('(<\/?(u|i|b)>)+','gmi')

关于javascript - 使用 .replace 替换 <b><u> 和 <i> 标签的任意组合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28170368/

相关文章:

javascript - 保存拖动元素的位置 - JavaScript

javascript - jQuery 条件检查类,如果它包含它执行的类

javascript - NPM 无法识别我的模块(需要未知模块)

javascript - Javascript,如果继续其他

Javascript:如何覆盖页面重新加载事件?

javascript - CoffeeScript 可以翻译成这段 JavaScript 吗?

javascript - 如何停止 Bootstrap Badge 剥离空格

javascript - 连接数组

Javascript 闭包/可变范围问题 - 我知道它有效,但为什么呢?

javascript - 使用 jquery 克隆 div 并显示为代码