#javascript #html #css
#javascript #HTML #css
Вопрос:
function onlyNumbers(evt) {
var e = event || evt; // For trans-browser compatibility
var charCode = e.which || e.keyCode;
if (charCode > 31 amp;amp; (charCode < 48 || charCode > 57))
return false;
return true;
}
function NumToWord(inputNumber, outputControl) {
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;
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;
}
input[type=number] {
-moz-appearance: textfield;
}
.num-disp-bg {
font-size: 13;
color: #444444;
font-family: Arial;
}
<div class="col-md-3">
<div class="form-group">
<label>Amount in Figures</label>
<div class="input-group">
<input type="number" id="number" class="form-control" style="width:75%;" placeholder="Enter Amount" value="" onkeypress="return onlyNumbers(this.value);" onkeyup="NumToWord(this.value,'divDisplayWords');" required>
</div>
</div>
</div>
<div class="col-md-6">
<div class="form-group">
<label>Amount in Words</label>
<div class="num-disp-bg form-control" id="divDisplayWords"></div>
</div>
</div>
Привет, я выполнил весь код для преобразования числового значения в слово (рисунок). Только после вставки числового значения в поле ввода число должно преобразовываться в word и отображаться как в div. Цифра суммы будет показана точно, но «Единственное» слово не отображается. я пробовал много раз, но не получал правильного способа. Как мне это сделать, не могли бы вы помочь.
Комментарии:
1. Я не уверен, что понимаю… Итак, вы написали весь этот довольно сложный, но, по-видимому, работающий код самостоятельно, но теперь вы застряли в добавлении «Только» к конечному результату? Если я не неправильно понял вашу проблему?
2. спасибо за ваш комментарий, я получил решение. больше после суммы на рисунке, я хочу только слово. Например, «Только десять тысяч двести», в настоящее время оно отображается так «Десять тысяч двести».
Ответ №1:
document.getElementById(outputControl).innerHTML = finalOutput " only";