gpt4 book ai didi

javascript - 使用 .replace 替换 标签的任意组合

转载 作者:行者123 更新时间:2023-11-28 19:24:20 58 4
gpt4 key购买 nike

我正在使用.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/

58 4 0