我需要编写一个javascript程序,要求用户输入一个小写字符串 字符然后打印其相应的两位数代码。例如,如果 输入为“home”,输出应为08151305。 到目前为止,我可以让它返回正确的数字,但我不能让它在数字前加零,如果它是一个数字 这就是我所拥有的:
<html>
<head>
<script type="text/javascript">
function show_prompt()
{
var name = prompt("Please enter a string of lowercase characters");
document.write(name,'<br>');
document.write('Length of the input is ', name.length,'<br>');
document.write("<br>")
for (i=0; i < name.length; i++)
{
{
document.write(i, ", ",name.charCodeAt(i) - 96, '<br>');
}
}
}
</script>
</head>
<body>
<input type="button" onClick="show_prompt()"value="CSE 201 HW#4 Problem 3"/>
</body>
</html>
答案 0 :(得分:1)
那么你可以检查它是否是一个数字,如果是,则前缀为“0”:
function padToTwoDigits(c) {
// convert to string and check length
c = "" + c;
return c.length === 1 ? "0" + c : c;
// or work with it as a number:
return c >=0 && c <=9 ? "0" + c : c;
}
// then within your existing code
document.write(i, ", ",padToTwoDigits(name.charCodeAt(i) - 96), '<br>');
当然,这些只是让你入门的一些想法。你可以稍微提高一点,例如,你可以用一个参数来创建一个更通用的pad函数来说明要填充的位数。
答案 1 :(得分:1)
您可以编写自己的打击垫功能,例如:
function pad(number) {
return (number < 10 ? '0' : '') + number
}
并使用pad函数,如:
document.write(i, ", ",pad(name.charCodeAt(i) - 96), '<br>');
答案 2 :(得分:0)
试试这个。
function show_prompt() {
var name = prompt("Please enter a string of lowercase characters");
document.write(name, '<br>');
document.write('Length of the input is ', name.length, '<br>');
document.write("<br>")
for (i = 0; i < name.length; i++) {
var n = name.charCodeAt(i) - 96;
document.write(i, ", ", n < 10 ? "0" + n : n, '<br>');
}
}
答案 3 :(得分:0)
我在这里写了一个快速示例: http://jsfiddle.net/ZPvZ8/3/
我写了一个原型方法给String来处理填充零。
String.prototype.pad = function(char, len){
var chars = this.split();
var initialLen = len - this.length;
for(var i = 0; i < initialLen; i++){
chars.unshift(char);
}
return chars.join('');
};
我将其转换为数组,然后使用填充字符添加元素。我选择使用数组,因为执行字符串操作是一项昂贵的操作(内存和CPU使用成本很高)。
要在你的程序中使用它,你只需要这样称呼它:
var res = new Array();
for (var i = 0; i < name.length; i++) {
var strCode = (name.charCodeAt(i) - 96).toString();
res.push(strCode.pad('0', 2));
}
document.write(res.join(''));