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

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

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

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

Q&A

解決済

6回答

1424閲覧

[javascript]読み込んだテキストファイルについて

moscow3

総合スコア201

JavaScript

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

0グッド

1クリップ

投稿2018/06/26 10:26

編集2018/06/26 13:07

javascriptでtxtファイルを読み込むのですが、見た目上は正常に読み込めてるのに、if文で判定した時に不具合が出ます

text1.txt

1 2中国国民党は軍閥打倒・国家統一のために北伐を開始したが、その総司令官は誰だったか 34蒋介石 5ーー

html

1<head> 2</head> 3<body> 4 <script> 5function readTextFile(file) 6{ 7 var rawFile = new XMLHttpRequest(); 8 rawFile.open("GET", file, false); 9 rawFile.onreadystatechange = function () 10 { 11 var QList = rawFile.responseText.split('\n'); 12 for(i=0;i<QList.length;i++){ 13 text=QList[i] 14 console.log(text=="ーー") 15 } 16 } 17 rawFile.send(null); 18} 19 20readTextFile('text1.txt') 21 22</script> 23</body>

出力

false false false false

text1.txtの最後の行は確かに「ーー」なのでtrueになるはずなのですが・・なぜかfalseになってしまいます
原因は何でしょうか?

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

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

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

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

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

guest

回答6

0

ファイルのエンコードがSJISになっていないでしょうか?
文字化けを起こして「ーー」との判定がfalseになっている可能性も考えられるかと思います。(こちらの環境でテストしてみたところ、ファイルのエンコードをUTF-8とした場合はfalse,false,false,trueとの結果となりました。)
いずれにしても、変数textの中身をコンソールに出力して確認してみてください
文字化けが起こっている場合はファイルのエンコードの変更で解決できるかと思います。

投稿2018/06/27 05:55

SE-studying-now

総合スコア351

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

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

0

console.log(text=="ーー")

JSでは == ではなく === でないとちゃんと判定してくれないはずです。

console.log(text==="ーー")

でどうでしょう?
あとは判定の前に text に想定している内容が入っているのかどうか吐き出して確認するという方法を書いていただいている方がいますので、それを試してください。

投稿2018/06/27 02:03

編集2018/06/27 02:06
ryo-is

総合スコア152

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

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

0

ベストアンサー

text=QList[i].trim()

投稿2018/06/26 19:55

efcode

総合スコア422

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

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

0

テキストファイルの改行コードが CR+LF 形式(\r\n)とか・・・?

投稿2018/06/26 12:27

yhg

総合スコア2161

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

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

0

カッコの数が合ってませんが。
それにセミコロン付いてない行もちらほら

#これもコピペミス?

投稿2018/06/26 11:37

y_waiwai

総合スコア87719

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

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

moscow3

2018/06/26 13:07

はい・・・すべてコピペしてから不要な部分を消したので・・ 修正しました
guest

0

変数textに何も代入されていないようですが。
console出力の前に
text=QList[i];
が必要です

投稿2018/06/26 10:40

satocha

総合スコア336

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

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

moscow3

2018/06/26 11:33

すみません。単なるコピペミスです 修正いたしました
y_waiwai

2018/06/26 13:21

console.log("<"+text+">") console.log(text=="ーー") として、textの内容も一緒に出してみるとか
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問