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);
我是 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);