我有这个用于wordpress的短代码。
[shortcodename code="dhgsfy87djh" time="2"][/shortcodename]
此模式可能会在textarea中出现多次。我需要在文本区域中删除所有出现的此模式。问题是 - 我不是一个前任的人。请建议正则表达式使用javasript删除所有出现的此模式。
例如,内容可能是这样的:
[shortcodename code="dhgsfy87djh" time="2"][/shortcodename] [shortcodename code="hdfds8f7684768" time="5"][/shortcodename] blah blah [shortcodename code="df87s8bdf78sd" time="8"][/shortcodename]
![这是怎么回事] [1]
http://s9.postimg.org/em9myvz1r/snap.png
由于我真的不知道为什么这个问题被投了票,我假设这里有人是einstien,我绝对不会竞争。
所以请再看一下图片。说这是wordpress评论框。现在我只需要出现一次短代码。那也只是一开始。说一些副本粘贴在这里和那里我想要剥离它。然后我只在顶部添加一个。
我正在做的添加部分,但剥离我不知道。我使用了一些reg ex,但它在php preg_match中工作,但它在javascript中不起作用。
这就是我使用的。
/(^ [shortcodename [])。([] *)。(code = \“someprefix _)。([A-Za-z0-9] +)。([] )。(time = \ “(\ d )\”)(] )([/ shortcodename])/ I;
这是我在stackoverflow上回答的第一个问题,所以我请求大家对我一点耐心。如果你不知道答案,请不要投票,说“我不知道”或“我不明白”或“提供更多信息”。
现在请帮助我。
答案 0 :(得分:2)
试试这个,它会确保只删除匹配的[tag] [/ tag],但不会删除[a] cc [/ b]
text = text.replace(/\[(\S+)[^\]]*][^\[]*\[\/\1\]/g, '');
答案 1 :(得分:1)
/\[[^\[]*shortcodename[^\]]*\]/ig
应该适合你。当然假设您的包装模式是相同的。
/ i标志将允许不区分大小写的匹配,并且/ g标志将确保替换所有匹配。
注意:这也会删除短信代码包装内的内容
。您可以在此处查看一个有效的示例:regex101.com/r/tB5nG2
编辑:鉴于您的问题的性质,我怀疑您尝试匹配的内容远远超过您提供的示例。尝试提供更广泛的例子,我们可以增强我们各自的答案。
答案 2 :(得分:0)
这应该有效:
text.replace(/\[.*?\]/g, "")