数字を単語に変換しようとしているときにも数字を入力しながらここで私は単語を入力し、私は画面に入力中に表示されますが、次の文字を押した後に表示される文字を押すといくつかの問題を抱えています。それはハイテク 'を示している彼を入力し、「何をここで行うにしても、コード私は数字を単語に変換するだけでなく、それらもまた、JavaScriptとhtmlの単語を表示しようとしている上にそれらを表示しています
<html>
<head>
<title>HTML - Convert numbers to words using JavaScript</title>
<script src="numtoword.js" type="text/javascript"></script>
</head>
<body>
<h1>
HTML - Convert numbers to words using JavaScript
</h1>
<input id="Text1" type="text" onkeydown="onlywords();" onkeyup="NumToWord(this.value,'divDisplayWords');"
maxlength="9" />
<br />
<br />
<div id="divDisplayWords" style="font-size: 13; color: Teal; font-family: Arial;">
</div>
<script>
function onlywords(){
var x = document.getElementById("Text1").value;
document.getElementById("divDisplayWords").innerHTML = x;
}
</script>
</body>
</html>
javscriptファイルです
function NumToWord(inputNumber, outputControl) {
if (inputNumber > 48 || inputNumber < 57) {
var str = new String(inputNumber)
var splt = str.split("");
var rev = splt.reverse();
var once = ['Zero', ' One', ' Two', ' Three', ' Four', ' Five', ' Six', ' Seven', ' Eight', ' Nine'];
var twos = ['Ten', ' Eleven', ' Twelve', ' Thirteen', ' Fourteen', ' Fifteen', ' Sixteen', ' Seventeen', ' Eighteen', ' Nineteen'];
var tens = ['', 'Ten', ' Twenty', ' Thirty', ' Forty', ' Fifty', ' Sixty', ' Seventy', ' Eighty', ' Ninety'];
numLength = rev.length;
var word = new Array();
var j = 0;
for (i = 0; i < numLength; i++) {
switch (i) {
case 0:
if ((rev[i] == 0) || (rev[i + 1] == 1)) {
word[j] = '';
} else {
word[j] = '' + once[rev[i]];
}
word[j] = word[j];
break;
case 1:
aboveTens();
break;
case 2:
if (rev[i] == 0) {
word[j] = '';
} else if ((rev[i - 1] == 0) || (rev[i - 2] == 0)) {
word[j] = once[rev[i]] + " Hundred ";
} else {
word[j] = once[rev[i]] + " Hundred and";
}
break;
case 3:
if (rev[i] == 0 || rev[i + 1] == 1) {
word[j] = '';
} else {
word[j] = once[rev[i]];
}
if ((rev[i + 1] != 0) || (rev[i] > 0)) {
word[j] = word[j] + " Thousand";
}
break;
case 4:
aboveTens();
break;
case 5:
if ((rev[i] == 0) || (rev[i + 1] == 1)) {
word[j] = '';
} else {
word[j] = once[rev[i]];
}
if (rev[i + 1] !== '0' || rev[i] > '0') {
word[j] = word[j] + " Lakh";
}
break;
case 6:
aboveTens();
break;
case 7:
if ((rev[i] == 0) || (rev[i + 1] == 1)) {
word[j] = '';
} else {
word[j] = once[rev[i]];
}
if (rev[i + 1] !== '0' || rev[i] > '0') {
word[j] = word[j] + " Crore";
}
break;
case 8:
aboveTens();
break;
// This is optional.
// case 9:
// if ((rev[i] == 0) || (rev[i + 1] == 1)) {
// word[j] = '';
// }
// else {
// word[j] = once[rev[i]];
// }
// if (rev[i + 1] !== '0' || rev[i] > '0') {
// word[j] = word[j] + " Arab";
// }
// break;
// case 10:
// aboveTens();
// break;
default:
break;
}
j++;
}
function aboveTens() {
if (rev[i] == 0) {
word[j] = '';
} else if (rev[i] == 1) {
word[j] = twos[rev[i - 1]];
} else {
word[j] = tens[rev[i]];
}
}
//word.reverse();
var finalOutput = '';
for (i = 0; i < numLength; i++) {
finalOutput = finalOutput + word[i];
}
document.getElementById(outputControl).innerHTML = finalOutput;
}
}
https://jsbin.com/qorufenipi/edit?html,js,output – crowchirp
お世話になりましたが、私のコード全体を変更しました@crai –
これを見たいかもしれませんhttp://stackoverflow.com/questions/ 14766951/convert-digits-into-javascript –