javascript - 将数字转换为单词

标签 javascript

<分区>

我必须将数字值转换为 Javascript 中的单词。 例如:如果打印 110 那么结果应该是 一百一十

javascript 中有没有内置函数?

最佳答案

试试这个

<html>
<head>
<title>Number Converter</title>
<script type="text/javascript">
var a = ['', 'One', 'Two', 'Three', 'Four', 'Five', 'Six', 'Seven', 'Eight', 'Nine'];
var b = ['Hundred', 'Thousand', 'Lakh', 'Crore'];
var c_0 = ['Ten', 'Eleven', 'Twelve', 'Thirteen', 'Fourteen', 'Fifteen', 'Sixteen', 'Seventeen', 'Eighteen', 'Ninteen'];
var d   = ['Twenty', 'Thirty', 'Forty', 'Fifty', 'Sixty', 'Seventy', 'Eighty', 'Ninety'];

function convertNumToWord(number){
  var c, rm;
  c = 1;
  string = '';
  number == 0 && (string = 'Zero');
  while (number != 0) {
    switch (c) {
      case 1:
        rm = number % 100;
        pass(rm);
        number > 100 && number % 100 != 0 && display('And ');
        number = ~~(number / 100);
        break;
      case 2:
        rm = number % 10;
        if (rm != 0) {
          display(' ');
          display(b[0]);
          display(' ');
          pass(rm);
        }

        number = ~~(number / 10);
        break;
      case 3:
        rm = number % 100;
        if (rm != 0) {
          display(' ');
          display(b[1]);
          display(' ');
          pass(rm);
        }

        number = ~~(number / 100);
        break;
      case 4:
        rm = number % 100;
        if (rm != 0) {
          display(' ');
          display(b[2]);
          display(' ');
          pass(rm);
        }

        number = ~~(number / 100);
        break;
      case 5:
        rm = number % 100;
        if (rm != 0) {
          display(' ');
          display(b[3]);
          display(' ');
          pass(rm);
        }

        number = ~~(number / 100);
    }
    ++c;
  }
  return string;
}

function display(s){
  var t;
  t = string;
  string = s;
  string += t;
}

function pass(number){
  var q, rm;
  number < 10 && display(a[number]);
  number > 9 && number < 20 && display(c_0[number - 10]);
  if (number > 19) {
    rm = number % 10;
    if (rm == 0) {
      q = ~~(number / 10);
      display(d[q - 2]);
    }
     else {
      q = ~~(number / 10);
      display(a[rm]);
      display(' ');
      display(d[q - 2]);
    }
  }
}
</script>
</head>
<body>
<input type="text" id="number"><input type="submit" value="Convert" id="convert">
<div id="converted"></div>
</body>
<script>
document.getElementById("convert").onclick=function() {
  if(document.getElementById("number").value.length > 9) {
    document.getElementById("converted").innerHTML="Cannot convert more than nine digits";
    return;
  }
  convertedVal = convertNumToWord(parseInt(document.getElementById("number").value));
  document.getElementById("converted").innerHTML=convertedVal;
}
</script>
</html>

关于javascript - 将数字转换为单词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14557231/

相关文章:

javascript - 函数式编程传递依赖

javascript - 使用 nodejs 连接到 mLab 数据库时出现错误并出现弃用警告

来自一个外部站点的 Javascript 应用程序未在 iframe 中运行

javascript - 从 YouTube 缩略图抓取调色板

javascript - 从正则表达式的字面表示法中删除反斜杠

javascript - 在 Ember 中如何使用 View 更改 css 属性然后查看它?

c# - 在页面加载时从隐藏字段中获取 JS 值

javascript - e.preventDefault() 不能在 javascript 中工作,但可以在 jQuery 中工作

javascript - npm 构建后 Vue 实例方法中的断点

javascript - `sails lift` 上的 Grunt 错误和空白页