jquery 或js 获取指定字符间的字符串,并轮换。回答出来的是大神级~

jquery 或js 获取指定字符间的字符串,并替换。回答出来的是大神级~~
现在我有一个字符串 var str = "我真的感到很 [高兴] 啊!";我想通过这两个中括号作为标识,获取中间的字符串,然后根据获得的字符串,替换成想应的反义词,比如我想把高兴,换成悲伤,但只能通过两个中括号作为标识。还有,如果我的 str里面有多个[],都需要替换,又该怎么做呢?我是想,先要分割,在找到相应反义词后,再替换,但是真不知道怎么写啊。。。。。
记住,我这里是要根据 中括号,获取到里面的字符串,再根据它才能知道我想替换的东西,不是仅仅的 str.replace(/[^\[]+(?=\])/g, "悲伤") 哦!!!
目测这个问题需要大神级的人物才知道啊。。。
求,,,求一个答案。。。大过节的,我给跪了啊。。

------解决方案--------------------
JScript code

<!DOCTYPE html>   
<html>
    <head> 
        <script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.8.2/jquery.min.js"></script> 
    </head>
    <body>
        <script type="text/javascript">    
            $(function() {
                var dic = {
                    '高兴': '忧伤',
                    '悲伤': '喜悦',
                    '凌乱': '冷静'
                },
                test = '我真的感到很 [高兴] 啊!还很[悲伤] 啊! 我[凌乱]了 !' ;
                $.each(test.match(/[^\[]+(?=\])/g), function(i, word) {
                    test = test.replace(word, dic[word]);
                });
                $('body').append(test);
            }) 
        </script>  
    </body>   
</html>