复制[wiki] word [/ wiki]之间的单词并添加到输出

时间:2014-12-01 14:52:27

标签: jquery

我使用自己创建的bbcode [wiki] [/ wiki],因此在这些代码之间封装的每个单词都会创建一个指向我的wiki的链接。见下面的代码。这很有效。

if (show_wiki_dscn == true ){

    var wiki_start = '<a class="fancywiki" href="http://www.domain.com/support/wiki-inline/';
    var wiki_end = '" data-fancybox-type="iframe"><i class="fa fa-question-circle fa-1x"></i></a>';

    $('div.content_body').each(function() {     
        $(this).html( $(this).html().replace( /\[wiki]/g, wiki_start ).replace( /\[\/wiki]/g, wiki_end));
    })

} else {

    var wiki_start = '<a class="pop-tooltip" href="http://www.domain.com/support/wiki/';
    var wiki_end = '" target="blank" title="Read our wiki"><i class="fa fa-question-circle fa-1x"></i></a>';

    $('div.content_body').each(function() {
        $(this).html( $(this).html().replace( /\[wiki]/g, wiki_start ).replace( /\[\/wiki]/g, wiki_end));
    })
}   

现在我的问题。 我想显示维基“单词”而不是问号。

那么如何复制[wiki]word[/wiki]并将<i class="fa fa-question-circle fa-1x"></i>替换为“word”

1 个答案:

答案 0 :(得分:1)

您需要使用单个正则表达式,并捕获单词:

$('div.content_body').each(function() {     
    $(this).html( $(this).html().replace( /\[wiki\](.*?)\[\/wiki\]/g, '<a class="fancywiki" href="http://www.domain.com/support/wiki-inline/" data-fancybox-type="iframe">$1</a>'));
})

我在替换字符串中使用$1来插入它。

我还建议您阅读Is it really insecure to build HTML strings in Javascript?关于替换方法的信息,因为它目前尚不安全。