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

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

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

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

Q&A

解決済

1回答

452閲覧

JavaScriptのreplaceメソッドについて教えてください!

joe0102

総合スコア13

JavaScript

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

0グッド

0クリップ

投稿2021/10/12 01:42

編集2021/10/12 01:55

JavaScriptのreplaceメソッドについて教えていただきたいです!

例えば、\nで改行が存在し、その改行コードにクラス名を付けたい場合はどの様に書けば良いのでしょうか?
ここでは、\nを<br class="blank">に置換したいです。
以下の様にすれば、全\nタグを指定するというところまではできました。

(/\n/g, ''))

教えていただけると幸いです。

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

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

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

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

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

maisumakun

2021/10/12 01:53

> その改行コードにクラス名を付けたい場合 どういう意味でしょうか?
joe0102

2021/10/12 01:54

すみません説明不足でした。 <br class="blank">という、改行に置換したいという意味です。
int32_t

2021/10/12 01:58

入力は何で(文字列? DOM内のtextContent?)、出力は何(文字列? DOM?)ですか?
maisumakun

2021/10/12 01:58

> \nを<br class="blank">に置換したいです 「そのとおりに書く」というのは試してみたのですか?
joe0102

2021/10/12 01:59

その通りに書くというのは試しました。
maisumakun

2021/10/12 02:01

で、どうなったのですか?
joe0102

2021/10/12 02:01

置換されなかったです。
maisumakun

2021/10/12 02:02

どのように書いてどんな結果を得たのかを、実行できるコードで示していただけますか?
joe0102

2021/10/12 02:05

以下の様に書いて、結果はクラス名がblankにならずに改行されています。 replace(/\n/g, '<br class=\'blank\'/>'))"
maisumakun

2021/10/12 02:07

元データから出力まで書いてください(出力の仕方を間違えている、なども考えられます)。
yambejp

2021/10/12 02:32

textarea内の改行などどうするつもりでしょうか?
guest

回答1

0

ベストアンサー

ざっくりこんな感じです
テキストエリアなどどうするか次第です

javascript

1<script> 2window.addEventListener('DOMContentLoaded', ()=>{ 3 const br=document.createElement('br'); 4 br.classList.add('blank'); 5 [...document.querySelectorAll('body,body *')] 6 .map(x=>[...x.childNodes].filter(x=>x.nodeType==3)) 7 .flat() 8 .forEach(x=>{ 9 x.nodeValue.split(/\n/).forEach((y,z)=>{ 10 if(z>0) x.parentNode.insertBefore(br.cloneNode(true),x); 11 x.parentNode.insertBefore(document.createTextNode(y),x); 12 }); 13 x.remove(); 14 }); 15}); 16</script> 17<body> 18test 19test 20test 21<span> 22 23 24</span> 25<span>test 26test 27test 28<span>test 29test 30test 31</span> 32</span> 33<textarea> 34test 35test 36test 37</textarea> 38</body>

投稿2021/10/12 02:45

編集2021/10/12 02:48
yambejp

総合スコア115012

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.46%

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

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

質問する

関連した質問