Javascript 使用.replace替换<;b>&书信电报;u>;及<;i>;标签

Javascript 使用.replace替换<;b>&书信电报;u>;及<;i>;标签,javascript,Javascript,我正在使用.replaceJavaScript方法替换字符串中的、和标记 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(ne

我正在使用
.replace
JavaScript方法替换字符串中的
标记

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='这是一些带粗体下划线的斜体文本';
$text.replace(新RegExp(“”,'gmi'),“”)。replace(新RegExp(“”,'gmi'),“”);
但是,这并不理想,因为它仅在标记按该顺序排列时才起作用。如果我的绳子是

var $text = 'This is some <i><b><u>bold underlined italic text</u></b></i>';
var$text='这是一些带粗体下划线的斜体文本';
是否有一种方法可以允许这三个标签的任意组合


谢谢你的帮助

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

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

$regexp = new RegExp('(<(/?)b>)|(<(/?)u>)|(<(/?)i>)','gmi');
$regexp=新的regexp('gmi');
编辑此选项最适合您,根据@Vbyec,您可以用更简洁的方式编写此选项

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

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

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

$regexp = new RegExp('(<(/?)b>)|(<(/?)u>)|(<(/?)i>)','gmi');
$regexp=新的regexp('gmi');
编辑此选项最适合您,根据@Vbyec,您可以用更简洁的方式编写此选项

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

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

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

$regexp = new RegExp('(<(/?)b>)|(<(/?)u>)|(<(/?)i>)','gmi');
$regexp=新的regexp('gmi');
编辑此选项最适合您,根据@Vbyec,您可以用更简洁的方式编写此选项

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

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

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

$regexp = new RegExp('(<(/?)b>)|(<(/?)u>)|(<(/?)i>)','gmi');
$regexp=新的regexp('gmi');
编辑此选项最适合您,根据@Vbyec,您可以用更简洁的方式编写此选项

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

您需要删除所有的b、u、i标签吗

$text.replace(/(<\/?(u|i|b)>)/gmi,"")
$text.replace(/()/gmi,”)

您需要删除所有的b、u、i标签吗

$text.replace(/(<\/?(u|i|b)>)/gmi,"")
$text.replace(/()/gmi,”)

您需要删除所有的b、u、i标签吗

$text.replace(/(<\/?(u|i|b)>)/gmi,"")
$text.replace(/()/gmi,”)

您需要删除所有的b、u、i标签吗

$text.replace(/(<\/?(u|i|b)>)/gmi,"")
$text.replace(/()/gmi,”)

第一种方法的问题是,我会得到三次foo,每个标记一次。但是我想用一个div tagAh来代替这三个是的,你是对的。因此,在这种情况下,只有第二个选项或者我刚才看到的@Vbyec的答案是相同的。第一个方法的问题是,我会得到foo三次,每个标记一次。但是我想用一个div tagAh来代替这三个是的,你是对的。因此,在这种情况下,只有第二个选项或者我刚才看到的@Vbyec的答案是相同的。第一个方法的问题是,我会得到foo三次,每个标记一次。但是我想用一个div tagAh来代替这三个是的,你是对的。因此,在这种情况下,只有第二个选项或者我刚才看到的@Vbyec的答案是相同的。第一个方法的问题是,我会得到foo三次,每个标记一次。但是我想用一个div tagAh来代替这三个是的,你是对的。因此,在这种情况下,只有第二个选项,或者正如我刚才看到的@Vbyec的答案所做的一样。