搜索文本并替换为正则表达式 – IndexOf

我有以下短代码/文字内容。 内容必须结构化,[全宽]只能包含[列]短代码,类似[列]短代码只能包含其他短代码,但不能包含简单的文本行。 如果发现任何问题,应将[column span =“12”]包裹起来[/ column]。 下面是需要使用regex转换的代码。

[fullwidth] 1111 any random text line not wrapped in shortcode [divider value="80"] ********** The above 2 lines them wrapped in [column span="12"] above 2 lines[/column] [column span="6"] [divider value="80"] 2222 any random text line not wrapped in shortcode [text] something [/text] [/column] [column span="6"] 3333 any random text line not wrapped in shortcode [divider value="80"] [/column] 4444 any random text line not wrapped in shortcode [divider value="30"] ********** The above 2 lines them wrapped in [column span="12"] above 2 lines[/column] [/fullwidth] 

所以最终的输出将如下所示:

 [fullwidth] [column span="12"] [text]1111 any random text line not wrapped in shortcode[/text] [divider value="80"] [/column] [column span="6"] [divider value="80"] [text]2222 any random text line not wrapped in shortcode[/text] [text] something [/text] [/column] [column span="6"] [text]3333 any random text line not wrapped in shortcode[/text] [divider value="80"] [/column] [column span="12"] [text]4444 any random text line not wrapped in shortcode[/text] [divider value="30"] [/column] [/fullwidth] 

我的原始代码非常复杂,不能在这里发布,它会让你感到困惑。 我试过的是先在每个[fullwidth]中获取内容并忽略列,所以我可以转换它们,下面是代码行。

 var shortcode = replace( 'column', shortcode, function(){return ' ';} ).replace(/ /g, ' ').replace(/

+/g, ' ').trim();

上面的代码给我[全宽]和未包含在[列]中的代码并删除[列]。 我不知道如何实现这一点,我将不胜感激任何帮助或起点。