2016-10-10 9 views
0

私はreactjsでウェブサイトを作成しました。 restAPIのために私はJavaを使用し、CMSは生きています。私は生涯でアコーディオンのショートコードを作成しました。javascriptで複数の文字列を置き換えるにはどうすればいいですか?

('[accordion][acc-header]Heading 1[/acc-header][acc-content]Content1[/acc-content][acc-header]Heading 2[/acc-header][acc-content]Content2[/acc-content][/accordion]')のようになりました。

この文字列の代わりにhtml要素を置きたいと思います。どのようにjavascriptで行うには?

ここに行く、

[accordion] 
[acc-header]Heading 1[/acc-header][acc-content]Content1[/acc-content] 
[acc-header]Heading 2[/acc-header][acc-content]Content2[/acc-content]  
[/accordion] 

HTML出力、

<div class="accordion"> 
    <h3>Heading1</h3> 
    <div class="accordion-content"> 
    content 1 
    </div> 
<h3>Heading2</h3> 
    <div class="accordion-content"> 
    content 2 
    </div> 
</div> 
+0

目的のHTML出力は何ですか? –

+0

@TomFenech、私は私の質問を編集しました。今すぐ確認していただけますか? – Sathya

答えて

2

汚いと迅速な方法:

var s = '[accordion][acc-header]Heading 1[/acc-header][acc-content]Content1[/acc-content][acc-header]Heading 2[/acc-header][acc-content]Content2[/acc-content][/accordion]'; 
s.replace(/\[([a-z\-]+)]/g, '<div class="$1">').replace(/\[\/[a-z\-]*]/g, '</div>') 

が結果は次のとおりです。

"<div class="accordion"><div class="acc-header">Heading 1</div><div class="acc-content">Content1</div><div class="acc-header">Heading 2</div><div class="acc-content">Content2</div></div>" 

これは追加されません<h3>タグ

+0

私の質問を編集しました – Sathya

+0

それは不公平です=)編集を追加しましたが、それは完全な解決ではありません – k102

関連する問題