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

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

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

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

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

Q&A

解決済

2回答

4564閲覧

inputで入力された文字をJavaScriptで取得すると、バックスラッシュがバックスラッシュ2つとして処理されるのを防ぎたい

Diawel

総合スコア190

JavaScript

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

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

0グッド

0クリップ

投稿2016/11/02 12:47

###前提・実現したいこと
inputで入力された文字をJavaScriptで取得すると、バックスラッシュがバックスラッシュ2つとして処理されてしまうので、そうならないようにしたいです。

###該当のソースコード
今使用しているコードは

Html

1<form name="input"> 2<input name="text" value="" /> 3</form>

JavaScript

1document.input.text.value; 2```です。

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

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

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

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

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

guest

回答2

0

「どこに出力したいのか」によると思いますが、console.log() はバックスラッシュをエスケープせずに出力可能です。

HTML

1<form id="input"> 2 <input name="text" value="a\b" /> 3</form> 4<script> 5'use strict'; 6console.log(document.getElementById('input').elements['text'].value); // "a\b" 7</script>

Re: masaya_46neko さん

投稿2016/11/02 13:29

think49

総合スコア18164

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

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

Diawel

2016/11/02 13:38

ご回答ありがとうございます。 ですが今回は利用環境が特殊ですので、maisumakun様の方法を利用させていただきます。
guest

0

ベストアンサー

「バックスラッシュ2つとして処理されてしまう」というのはどこで確認してのことでしょうか。

console.logなどを使ってコンソールで確認する場合、文字列はコンソールへの出力時点で(JavaScvriptの文字列として表現するために)バックスラッシュなどがエスケープされます。

いちばん簡便な方法としては、alert()させてみてスラッシュが1つならそれで問題ないということです。

投稿2016/11/02 12:51

maisumakun

総合スコア145184

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

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

Diawel

2016/11/02 12:54

その結果をオブジェクトに格納して、Jsonに変換してダウンロードすると\nと打ったところがデータ上は\\nになっているんです
maisumakun

2016/11/02 12:56

JSON内の文字列もJavaScriptのものに準じますので、エスケープは「される」のが正当です。
Diawel

2016/11/02 12:58

では、正当ではない\が一つの状態で取得する方法があれば教えていただけませんか?
maisumakun

2016/11/02 13:02

JSONをどう使うかにもよるのですが、JavaScriptだとJSON.parse()すれば元の文字列を取得できます。
Diawel

2016/11/02 13:12 編集

JSON.parseしても\が二つのままになったのですが、手動でファイルから\を一個消せば\は一つに認識されて改行されました。なのでファイルそのままだと思います。
maisumakun

2016/11/02 13:16

つまり、「入力フォームで\nと打ったものを、文字通りにではなく、改行と認識させたい」ということで間違いないですか?
Diawel

2016/11/02 13:17

はい。
maisumakun

2016/11/02 13:21

それなら自力で、「str.replace(/\\\\n/g, '\n')」のように置き換えるしかありません(正規表現リテラル内でもバックスラッシュに意味があるので、4つ必要です)。
Diawel

2016/11/02 13:36

ありがとうございます! いろいろ試してみます!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問