Как отобразить «только» слово после числового значения, преобразованного в в word

#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";