    // ID="MESSAGE"の値に変更があった時次の処理を行う
    // jQueryを使わない場合の記述はサンプル部のソースを確認のこと
    $("#MESSAGE").change(function(){

            // 変数strにMESSAGEの値を代入
            var str = this.value;

            // タグの順番を記憶する配列を宣言
            var arr = [];

            // strの中身について"[b"、"[i"、"[u"、"b]"、"i]"、"u]"のいずれかの文字が含まれているか検索
            str = str.replace(/<(\w+)[^>]*>|<\/(\w+)>/g,
    /*      str = str.replace(/<(\w+)[^>]*>|<\/(\w+)>/g, */

                    // s：一致した文字列、ps：最初の（）内の文字、pe：後の（）内の文字 が代入される
                    function(s, ps, pe){

                            // psの値が空でなければ
                            if(ps){

                                    // arrにpsの値を追加
                                    if(ps.match(/b|i|u|s|font/)) arr.push(ps);
				    else s = ""; */
    /*                              if(ps.match(/b|i|u|s|font/)) arr.push(ps); */
    /*                              else s = ""; */

                            // psの値が空だった場合(peの値が空でない)
                            }else{

                                    // a：arrの最後の値を格納するための変数、b：追加する終了タグをつなぎ合わせた文字列
                                    var a = "", b = "";

                                            // arrの内容が空になるまでループ
                                            while(arr.length){

                                                    // arrの最後の値をaに代入
                                                    a = arr.pop();

                                                    // aの値がpeと一致しない場合はbにaの値+"]"を代入
                                                    if(a != pe) b += "</" + a + ">";
    /*                                              if(a != pe) b += "</" + a + ">"; */

                                                    // 一致したらループから抜ける
                                                    else break;
                                            }

                                            // sに(a != pe)ならb、そうでなければb+sを代入
                                            s = a != pe ? b : b + s;
                            }

                            // 正規表現に一致した部分の文字列をsで置き換える
                            return s;
                    }
            );

            // arrがまだ残っていればstrにarrの最後から順番に追加する
            while(arr.length) str += "</" + arr.pop() + ">";
    /*      while(arr.length) str += "</" + arr.pop() + ">"; */

            // MESSAGEの値をstrの値で置き換える
            this.value = str;
    });
