teratail header banner
teratail header banner
質問するログイン新規登録

質問編集履歴

1

みなさま、申し訳ありません。また、ご指摘くださりありがとうございます。ソースを追加しました。

2017/08/01 04:17

投稿

退会済みユーザー
title CHANGED
File without changes
body CHANGED
@@ -3,6 +3,7 @@
3
3
  半角数字を漢数字に変換し、入力欄の下に表示したい。
4
4
 
5
5
  ###該当のソースコード
6
+ ```
6
7
  <section>
7
8
  <p>数字を入力してください。漢数字に変換します。</p>
8
9
  <form>
@@ -12,6 +13,43 @@
12
13
  <p id="result">ここに結果を表示します。</p>
13
14
  </section>
14
15
 
16
+ ```
17
+ ```
18
+
19
+ function toKanji(n) {
20
+ var th = ["","千","二千","三千","四千","五千","六千","七千","八千","九千"];
21
+ var h = ["","百","二百","三百","四百","五百","六百","七百","八百","九百"];
22
+ var t = ["","十","二十","三十","四十","五十","六十","七十","八十","九十"];
23
+ var o = ["","一","二","三","四","五","六","七","八","九"];
24
+ var str = '';
25
+ var s = '';
26
+ var m = '';
27
+
28
+ if (n == 0) {
29
+ return '零';
30
+ } else if (n < 0 || isNaN(n)) {
31
+ return alert('漢数字に変換できません。');
32
+ } else {
33
+ for (var i = 0; i < n.length; i++) {
34
+ s = n.substr(,); //
35
+
36
+ th = th [ Math.floor(s / 1000) ];
37
+ h = h [ Math.floor(s / 100) % 10 ];
38
+ t = t [ Math.floor(s / 10) % 10 ];
39
+ o = o [ s % 10 ];
40
+ m = th + h + t + o ;
41
+ str += m ;
42
+ }
43
+ return str;
44
+ }
45
+ }
46
+
47
+ function convert() {
48
+ var n = document.getElementById('num').value;
49
+ var result = document.getElementById('result');
50
+ result.innerHTML = toKanji(n);
51
+ }
52
+ ```
15
53
  ###補足情報(言語/FW/ツール等のバージョンなど)
16
54
  文系の学生です。独学でJavaScriptを勉強をしています。
17
55
  上記のHTMLを元に色々試してみたのですが、全然できなくて悩んでおります。
@@ -24,4 +62,9 @@
24
62
  123456789 = 一億二千三百四十五万六千七百八十九
25
63
  10010000 = 千一万
26
64
  10001 = 一万一
27
- 1001 = 千一
65
+ 1001 = 千一
66
+
67
+ どうすればできるのか考えてみたのですが、
68
+ 4桁ずつ切り出し漢数字へ変換
69
+ →4桁ごとに桁を追加
70
+ →if文で4桁の中身が空欄だったら桁つけない?