我有以下短代码/文字内容。 内容必须结构化,[全宽]只能包含[列]短代码,类似[列]短代码只能包含其他短代码,但不能包含简单的文本行。如果发现任何问题,应将[column span =“12”]包裹起来[/ column]。下面是需要使用正则表达式转换的代码。
[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(/<p> +<\/p>/g, ' ').trim();
上面的代码给了我[fullwidth]和未包含在[column]中的代码并删除了[column]。我不知道如何实现这一点,我将不胜感激任何帮助或起点。