Advertisement
Guest User

NumberToText.js

a guest
Mar 17th, 2018
96
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. function numberToText(num) {
  2.   var to_19 = ["", "one", "two", "three", "four", "five", "six", "seven", "eight", "nine", "ten", "eleven", "twelve", "thirteen", "fourteen", "fifteen", "sixteen", "seventeen", "eighteen", "nineteen"],
  3.     tens = ["", "", "twenty", "thirty", "fourty", "fifty", "sixty", "seventy", "eighty", "ninty"],
  4.     bigNum = ["thousand", "million", "billion", "trillion", "quadrillion", "quintillion", "sextillion", "septillion", "octillion", "nonillion", "decillion", "undecillion", "duodecillion",
  5.         "tredecillion", "quattuordecillion", "quindecillion", "sexdecillion", "septendecillion", "octodecillion", "novemdecillion", "vigintillion", "unvigintillion", "duovigintillion",
  6.         "trevigintillion", "quattuorvigintillion", "quinvigintillion", "sexvigintillion", "septenvigintillion", "octovigintillion", "novemvigintillion", "trigintillion", "untrigintillion",
  7.         "duotrigintillion", "tretrigintillion", "quattuortrigintillion", "quintrigintillion", "sextrigintillion", "septentrigintillion", "octotrigintillion", "novemtrigintillion", "quadragintillion",
  8.         "unquadragintillion", "duoquadragintillion", "trequadragintillion", "quattuorquadragintillion", "quinquadragintillion", "sexquadragintillion", "septenquadragintillion", "octoquadragintillion",
  9.         "novemquadragintillion", "quinquagintillion", "unquinquagintillion", "duoquinquagintillion", "trequinquagintillion", "quattuorquinquagintillion", "quinquinquagintillion", "sexquinquagintillion",
  10.         "septenquinquagintillion", "octoquinquagintillion", "novemquinquagintillion", "sexagintillion", "unsexagintillion", "duosexagintillion", "tresexagintillion", "quattuorsexagintillion",
  11.         "quinsexagintillion", "sexsexagintillion", "septensexagintillion", "octosexagintillion", "novemsexagintillion", "septuagintillion", "unseptuagintillion", "duoseptuagintillion",
  12.         "treseptuagintillion", "quattuorseptuagintillion", "quinseptuagintillion", "sexseptuagintillion", "septenseptuagintillion", "octoseptuagintillion", "novemseptuagintillion",
  13.         "octogintillion", "unoctogintillion", "duooctogintillion", "treoctogintillion", "quattuoroctogintillion", "quinoctogintillion", "sexoctogintillion", "septenoctogintillion",
  14.         "octooctogintillion", "novemoctogintillion", "nonagintillion", "unnonagintillion", "duononagintillion", "trenonagintillion", "quattuornonagintillion", "quinnonagintillion",
  15.         "sexnonagintillion", "septennonagintillion", "octononagintillion", "novemnonagintillion", "centillion"];
  16.     if (/[0-9]+/.test(num) === false) {
  17.         return ["That's not a number!"];
  18.     } else if (num.toString().length > 306) {
  19.         return ["That number is too large!"];
  20.     }
  21.     var index = 0;
  22.     if (num == "0") return "Zero";
  23.     try {
  24.         index = Math.ceil(num.toString().length / 3);
  25.         num = num.toString().split("").reverse().join("").match(/.{1,3}/g).reverse();
  26.         for (var i = 0; i < index; i++) {
  27.             num[i] = num[i].split("").reverse().join("");
  28.             if (num[i].toString().length > 3) alert("Error!");
  29.             num[i] = Number(num[i]);
  30.             str = [];
  31.             if (num[i] >= 100) str.push(to_19[Math.floor(num[i] / 100)] + " hundred");
  32.             if (Number(num[i].toString().substring(num[i].toString().length - 2)) < 20) {
  33.                 str.push(to_19[Number(num[i].toString().substring(num[i].toString().length - 2))]);
  34.             } else {
  35.                 if (num[i].toString().length >= 2 && num[i].toString().charAt(num[i].toString().length - 2) !== 0) str.push(tens[num[i].toString().charAt(num[i].toString().length - 2)]);
  36.                 if (num[i].toString().length >= 1 && num[i].toString().charAt(num[i].toString().length - 1) !== 0) str.push(to_19[num[i].toString().charAt(num[i].toString().length - 1)]);
  37.             }
  38.             num[i] = str.join(" ");
  39.             if (i !== index && num[i] !== "") num[i] += " " + bigNum[(index - i - 1)];
  40.             if (num[0] && num[0].length !== 0) num[0] = num[0].charAt(0).toUpperCase() + num[0].slice(1);
  41.         }
  42.     num = num.filter(function(i) {return i !== "";});
  43.         num = (num.join(", "));
  44.         return (num.toString().match(/.{1,2000}/g));
  45.     } catch (ex) {
  46.         return ex;
  47.     }
  48. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement