質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

Q&A

3回答

823閲覧

JavaScriptでのreplace関数による改行変換処理について

Monlar

総合スコア1

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

0グッド

0クリップ

投稿2021/11/08 17:32

お世話になっております。

JavaScriptでの改行変換処理について質問があります。

以下のような文章(Text1)がテキストフィールドに格納されているとき、

aaaaa

BBBBBB
ccc DDDD

fffff

上記のようなテキストを取得して、他のテキストフィールド等(Text2)にそっくりそのまま表示させるにはどのような記述で達成できるでしょうか?

現在、JavaScriptのreplace関数を用いて以下のような正規表現で改行等を処理しようとしています。

JavaScript

1var Text2 = Text1.replace(/\s+\g,'<br>'); // 空白(\s)を全て改行(<br>)に変換。

上記の記述では、変換後のText2は、以下のように表示されます。

aaaaa
BBBBBB
ccc
DDDD
fffff

単純に空白を改行に変換しているだけなので、aaaaaとBBBBBB、ccc DDDDとfffffの空行が詰められてしまったり、逆にccc DDDDの間の空白も改行されてしまったりといった問題が発生します。

上記課題について、知見をお持ちの方がいらっしゃればよろしくお願いいたします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2021/11/09 14:07

テキストフィールドと言ってるのが何なのかよく分かりません。 とりあえずinput要素だと複数行無理なので、textareaかなぁと思いました。 textareaは改行は改行と扱われたはずなので特に置換は必要なかったと思います。 以下確認コードを提示します。 <input type="text" id="field1" name="field1" value="aaaaa BBBBBB ccc DDDD fffff"> <input type="text" id="field2" name="field2" value=""> <textarea id="Text1" name="Text1">aaaaa BBBBBB ccc DDDD fffff</textarea> <textarea id="Text2" name="Text2"></textarea> <button id="button1"> log </button> <script> document.addEventListener('click', ()=>{ const text = document.querySelector('#Text1').textContent; console.log(text); document.querySelector('#Text2').value = text; }); </script> テキストフィールドと言ってるのは何なのでしょうか?
guest

回答3

0

cssの問題であればこうしてください
(あとはjsで属性を設定すれば良いと思います)

css

1<style> 2#txt2{white-space:pre} 3</style> 4 5<div id="txt2"> 6aaaaa 7 8BBBBBB 9ccc DDDD 10 11fffff 12</div>

投稿2021/11/09 00:16

yambejp

総合スコア116724

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

改行\nを置換すればいいのでは?何故に\s+???

投稿2021/11/08 18:29

otn

総合スコア85901

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

与えられた文字列 Text1 に含まれる改行を replace で<br /> に変換するのもよいですが、もうひとつのやり方として、

そっくりそのまま表示

させたいテキストについては、<pre>タグ で表示させるという方法もあります。

html

1<pre id="text"></pre>

javascript

1const Text1 = `aaaaa 2 3BBBBBB 4ccc DDDD 5 6fffff`; 7 8// Text1 のまま、要素のtextContentに設定 9document.querySelector('#text').textContent = Text1;

???? サンプル

投稿2021/11/08 23:54

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問