プログラミング言語や環境設定を中心としたパソコン関連の技術メモです。
主にシステム開発中に調べたことをメモしています。TIPS的な位置付けで、気が向いたときにちまちま更新していきます。
JavaScript、文字列の改行を削除する
結論から書けば

変数 = 変数.replace(/\r?\n/g,"");

でOKです。
改行コード「\r\n」「\n」を全部消してくれます。

そんなに難しいところは無いと思いますが、補足しておきますね。

変数.replace(【元の文字列】,【置換後の文字列】)

で、文字列の置換です。
【元の文字列】には正規表現を使うこともできます。

/\r?\n/g

の部分は

/\r?\n/



g

に分けて考えた方が分かりやすいと思います。

/\r?\n/

の「?」は「0回か1回ある」の指定です。
「\r」が0回ある(つまり「\r」の無い)「\n」か
「\r」が1回ある「\r\n」が条件に一致します。

これだけだと、改行コードが複数回登場しても最初の1回しか置換してくれません。
最後に「g」を付けて

/\r?\n/g

とすることで、出現する「\n」「\r\n」をすべて置換してくれます。
※改行コードを空文字に置換することで、改行コードの削除になります。

説明としてはそんなところです。
取りあえずサンプルを置いておきますねφ(--)

<!DOCTYPE html>
<html lang="ja">
<head>
    <meta charset="utf-8">
    <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
    <title>JavaScript、改行削除テスト</title>

    <script type="text/javascript">
    <!--
        $(document).ready(function(){
            //テキストエリアでキーを押したり離したり変更したりしたとき
            $('#input_area').bind('keydown keyup keypress change',function(){

                //テキストエリアの内容を取得
                var str01 = $(this).val();

                //改行を削除
                str01 = str01.replace(/\r?\n/g,"");

                //改行を削除した内容をテキストエリアに戻す
                $(this).val(str01);
            });
        });
    // -->
    </script>
</head>
<body>
    <textarea id="input_area" col="10" row="3"></textarea>
</body>
</html>

入力された改行を除去することで、テキストエリアなのに改行できなくしています。
jQueryを使っているのは、私が慣れているからです。
特に深い意味はありません。
大事なのは

//改行を削除
str01 = str01.replace(/\r?\n/g,"");

の部分です。

ちなみに、改行は除去するか

変数 = 変数.replace(/\r?\n/g,"<br>");

のようにしてbrタグに置き換えるのが一般的な使い方だと思います。
それ以外で使うことは、そんなに無いんじゃないですかね(--?

ってなところで、JavaScriptで文字列の改行を削除するの、完了\(--)/
スポンサーリンク
 
このエントリーをはてなブックマークに追加 

category:● JavaScript  thema:パソコンな日々 - genre:コンピュータ  Posted by ササキマコト 

  関連記事