質問編集履歴
1
みなさま、申し訳ありません。また、ご指摘くださりありがとうございます。ソースを追加しました。
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桁の中身が空欄だったら桁つけない?
|