【发布时间】:2010-09-10 00:08:39
【问题描述】:
我正在尝试编写一些 JavaScript RegEx 来用真正的 html 标签替换用户输入的标签,所以[b] 将变为<b> 等等。我使用的 RegEx 看起来像这样
var exptags = /\[(b|u|i|s|center|code){1}]((.){1,}?)\[\/(\1){1}]/ig;
使用以下 JavaScript
s.replace(exptags,"<$1>$2</$1>");
这适用于单个嵌套标签,例如:
[b]hello[/b] [u]world[/u]
但如果标签相互嵌套,它只会匹配外部标签,例如
[b]foo [u]to the[/u] bar[/b]
这只会匹配b 标签。我怎样才能解决这个问题?我应该循环直到起始字符串与结果相同吗?我感觉((.){1,}?)的模式也错了?
谢谢
【问题讨论】:
-
我不敢相信没有人在这里留下这个:stackoverflow.com/a/1732454/20074
标签: javascript regex markdown