JS 数字与 For 循环文本

JS Numbers to text with For-loop

我是 javascript 的新手,我被困在 javascript for 循环练习中,问题是我需要 return 填写的电话号码才能发短信必须看起来像这样:

(这只是一个例子)

填写号码:0332141 我如何 return 它:零 - 三 - 三 - 二 - 一 - 四 - 一

这是我已有的代码,我必须使用它:

 <!DOCTYPE html>
 <html lang = "nl">
 <head>
 <meta http-equiv="Content-Type"
   content="text/html"
   charset=UTF-8/>
     <title>Lab11/title>
  </head>
  <body>
   <script>
   var number = new Array();
   number[0] = 'zero';
   number[1] = 'one';
   number[2] = 'two';
   number[3] = 'three';
   number[4] = 'four';
   number[5] = 'five';
   number[6] = 'six';
   number[7] = 'seven';
   number[8] = 'eight';
   number[9] = 'nine';

    var phonenumber = prompt('What is youre phonenumber?');
   document.write('<br> your phonenumber is: ' + phonenumber);
   </script>
   </body>
   </html>

但是这当然只显示数字,所以如上面的例子我需要 return 文字中的数字,关于如何做到这一点有什么想法吗?

这是最快的方法:

var h1 = document.body.getElementsByTagName('h1')[0];

// Convert number to words
function numToText(num) {
  num = num.toString(); //Convert number to string
  var text = '<br>'; 
  var numbers = {'0': 'zero', '1': 'one', '2': 'two', '3': 'three', '4': 'four', '5': 'five', '6': 'six', '7': 'seven', '8': 'eight', '9': 'nine'};

  var len = num.length;
  for(var i = 0; i < len; i++) {
    text += numbers[num.charAt(i)];
    if(i < len-1)  text += ' - ';
  }
  return text;
}

// Form Handler
var form = document.forms[0];
form.onsubmit = function(){
    var input = form.elements[0].value;
    document.body.innerHTML += numToText(input);
    return false; //prevent page refresh after submit
};
<h1>What is you're phone number?</h1>
<form id="form">
  <input type="text" name="text" value="">
  <input type="submit" name="submit" value="submit">
</form>

   var number = new Array();
   number[0] = 'zero';
   number[1] = 'one';
   number[2] = 'two';
   number[3] = 'three';
   number[4] = 'four';
   number[5] = 'five';
   number[6] = 'six';
   number[7] = 'seven';
   number[8] = 'eight';
   number[9] = 'nine';

    var phonenumber = prompt('What is youre phonenumber?');
    phonenumber = phonenumber.split("");
    
    for(var i = 0; i < phonenumber.length; i++) {
        phonenumber[i] = number[phonenumber[i]];
    }
    
    phonenumber = phonenumber.join(" - ");
   document.write('<br> your phonenumber is: ' + phonenumber);
 <!DOCTYPE html>
 <html lang = "nl">
 <head>
 <meta http-equiv="Content-Type"
   content="text/html"
   charset=UTF-8/>
     <title>Lab11</title>
  </head>
  <body>
   </body>
   </html>

这应该适合你。它将提示的响应拆分为每个元素一个数字的数组,然后遍历它并用其名称替换每个数字。

这段代码应该很有用。它只是将输入的字符串拆分为一个数字数组,将每个数字转换为相应的字符串,最后将数组连接成一个“-”分隔的字符串。

var table = ['zero','one','two','three','four','five','six','seven','eight','nine'];
var phone = "012658"
var number2text = phone.split("").map(x => table[x]).join("-");
console.log(number2text);

要获取输入的号码的单词,请使用以下代码段(在提示输入号码后

var phoneString = "";
for (i=0; i<phonenumber.length; i++){
  phoneString +=(number[phonenumber[i]] + " ");
}
document.write('<br> your phonenumber is: ' + phoneString);