ユーザーが入力したタグを実際の html タグに置き換える JavaScript RegEx を作成しようとしてい[b]
ます<b>
。私が使用している正規表現はそのように見えます
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,}?)
パターンも間違っているような気がしますか?
ありがとう