Код с цифрой в алфавит не работает в Javascript

Здесь SetThreadExecutionState реализация C #

0
задан Learner 29 March 2019 в 17:52
поделиться

2 ответа

Ваша ошибка была вызвана этой строкой: parseInt(document.getElementById('t1')); Вы пытались выполнить parseInt (элемент ввода html). Нет способа проанализировать значение HTML для int, поэтому он возвращал NaN, который нельзя преобразовать в «Три» или любое другое число. Вот рабочий код:

<!DOCTYPE html>
<!--
To change this license header, choose License Headers in Project Properties.
To change this template file, choose Tools | Templates
and open the template in the editor.
-->
<html>
    <head>
        <meta charset="UTF-8">
        <title></title>
        <script>
            function abc()
            {
              
                var amt=document.getElementById('t1').value;
                var d="";
                var ones=Array("","One","Two","Three","four","five");
                var tens=Array("","","Twenty","Thirthy","Fourthy","fifthy");
                var hundreds=Array("","One hundred","Two hundred","Three hundred","Four hundred","Five hundred");
                if(amt>=1&&amt<=19)
                {
                    d=ones[amt];
                }
                  document.getElementById('p1').innerHTML=d;
               // document.write(d);

            }
            </script>
    </head>
    <body>

                <input type="text" id="t1" />

                <input type="button"  value="Convert" onclick="abc()" />

                <p id="p1"></p>

    </body>
</html>

0
ответ дан Dolidod Teethtard 29 March 2019 в 17:52
поделиться

В дополнение к моему комментарию о том, чтобы не брать значение.

Используйте let amt = document.getElementById('t1').value. Это возвращает значение внутри ввода.

Кто-то сделал хороший пример того, что вы пытаетесь сделать здесь: Преобразование цифр в слова с помощью JavaScript

var a = ['', 'one ', 'two ', 'three ', 'four ', 'five ', 'six ', 'seven ', 'eight ', 'nine ', 'ten ', 'eleven ', 'twelve ', 'thirteen ', 'fourteen ', 'fifteen ', 'sixteen ', 'seventeen ', 'eighteen ', 'nineteen '];
var b = ['', '', 'twenty', 'thirty', 'forty', 'fifty', 'sixty', 'seventy', 'eighty', 'ninety'];

function inWords(num) {
  if ((num = num.toString()).length > 9) return 'overflow';
  n = ('000000000' + num).substr(-9).match(/^(\d{2})(\d{2})(\d{2})(\d{1})(\d{2})$/);
  if (!n) return;
  var str = '';
  str += (n[1] != 0) ? (a[Number(n[1])] || b[n[1][0]] + ' ' + a[n[1][1]]) + 'crore ' : '';
  str += (n[2] != 0) ? (a[Number(n[2])] || b[n[2][0]] + ' ' + a[n[2][1]]) + 'lakh ' : '';
  str += (n[3] != 0) ? (a[Number(n[3])] || b[n[3][0]] + ' ' + a[n[3][1]]) + 'thousand ' : '';
  str += (n[4] != 0) ? (a[Number(n[4])] || b[n[4][0]] + ' ' + a[n[4][1]]) + 'hundred ' : '';
  str += (n[5] != 0) ? ((str != '') ? 'and ' : '') + (a[Number(n[5])] || b[n[5][0]] + ' ' + a[n[5][1]]) + 'only ' : '';
  return str;
}

document.getElementById('number').onkeyup = function() {
  document.getElementById('words').innerHTML = inWords(document.getElementById('number').value);
};
<span id="words"></span>
<input id="number" type="text" />

0
ответ дан Raymond 29 March 2019 в 17:52
поделиться
Другие вопросы по тегам:

Похожие вопросы: