Javascript 使用正则表达式在括号之间恢复HTML的问题

Javascript 使用正则表达式在括号之间恢复HTML的问题,javascript,regex,Javascript,Regex,我今天来找你们是因为我遇到了一个小问题,这个问题已经困扰了我很长一段时间: 为了自动化数字化的管理合同,我使用HTML字符串中的变量home,使用所见即所得编辑器,其形式为“[[NAME OF variable]]]”。然后检索这些变量,并将它们转换为文本字段,以便用户可以通过表单填充它们 我目前正在使用Angular 5 我担心的是,其中一个变量弄乱了编辑器,并在JS中的恢复过程中给出了它: '[[[blablabla</span><span style="backgroun

我今天来找你们是因为我遇到了一个小问题,这个问题已经困扰了我很长一段时间:

为了自动化数字化的管理合同,我使用HTML字符串中的变量home,使用所见即所得编辑器,其形式为“[[NAME OF variable]]]”。然后检索这些变量,并将它们转换为文本字段,以便用户可以通过表单填充它们

我目前正在使用Angular 5

我担心的是,其中一个变量弄乱了编辑器,并在JS中的恢复过程中给出了它:

'[[[blablabla</span><span style="background-color: rgb(255, 255, 255);">]]]',
“[[[blabla]]]”,
因此,在分配用户提交的值时,不会将其考虑在内。。我想做的是制作一个正则表达式,用真空代替html代码,但它是I块,我正在做测试,我到了这个阶段:

/\[\[\[(<[^>]+>)\]\]\]/gi
/\[\[\[(]+>)\]\]\]\]/gi
但我承认regex和我现在是10:D

有人能解开我的锁吗?如果你需要更多的细节,那就不用担心了

提前谢谢你


(对不起我的英语,我是法国人)

您可以匹配
[[[/code>和
]]]
之间的所有子字符串,然后只替换那些匹配中与
模式匹配的子字符串:

s = s.replace(/\[\[\[[\s\S]*?]]]/g, function (m) { 
    return m.replace(/<[^<>]+>/g, ''); 
})
s=s.replace(/\[\[\[\s]*?]]]]/g,函数(m){
返回m.replace(//g',);
})
第一个模式匹配

  • \[\[\[
    -a
    [[[
    子字符串
  • [\s\s]*?
    -任何0+字符,尽可能少
  • ]]
    -a
    ]]
    子字符串

g
修饰符在输入字符串中查找模式的多个匹配项。匹配项被传递给回调方法(
m
是匹配的文本),而
.replace(//g',)
仅应用于
m
文本,该文本是在将
匹配项替换为空字符串后返回的。

看起来需要
s.replace(//\[\[\[\s\s]*?]]]]/g,函数(m){return m.replace(//g',);})
Waw,我爱你!!谢谢你的快速回复!!正是我需要的!我在上面已经三天了哈哈谢谢!非常感谢您的解释!这对我帮助很大,我更了解结果!