js程序问题,求解答

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了js程序问题,求解答相关的知识,希望对你有一定的参考价值。

下面有两段格式化字符串的程序。
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>无标题文档</title>
<script type="text/javascript">
function formmatNO(str,len)
var strlen=str.length;
for(i=0;i<len-strlen;i++)
str="0"+str;

return str;

</script>
<script type="text/javascript">
function deal()
if(form1.str.value=="")
alert("请输入要格式化的数字;");
form1.str.focus();
return false;

if(isNaN(form1.str.value))
alert("您输入的数字不正确;");
form1.str.focus();
return false;

if(form1.len.value=="")
alert("请输入要格式化后的长度;");
form1.len.focus();
return false;

if(isNaN(form1.len.value))
alert("您输入的格式化的长度不正确;");
form1.len.focus();
return false;

form1.res.value=formmatNO(form1.str.value,form1.len.value)

</script>
</head>

<body>
<form name="form1" action="" method="post">
<table width="393" border="1">
<tr>
<td width="168">输入要格式化的数字:</td>
<td width="209"><input type="text" name="str" value=""></td>
</tr>
<tr>
<td>输入格式化后的长度:</td>
<td><input type="text" name="len" value=""></td>
</tr>
<tr>
<td>格式化后的数字:</td>
<td><input type="text" name="res" value=""></td>
</tr>
<tr>
<td><input type="button" value="转换" class="btn_1" onclick="deal()"></td>
<td><input type="button" value="刷新" class="btn_2"onclick="window.location.reload()"></td>
</tr>
</table>
</form>
</body>
但如果将里面的formmatNO()函数修改成下面那样,单独运行,就没有被格式化,这是为什么?
<script type="text/javascript">
function formmatNO(str,len)
var strlen=str.length;
for(i=0;i<len-strlen;i++)
str="0"+str;

document.write(str);

formmatNO(4,5)
</script>

调用方式的原因。
formmatNO(4,5)中4是整数,不是字符串,str.length是undefined,导致for循环没有被执行。改成formmatNO("4",5);就可以了追问

我也是刚刚才想到的,原程序里面form1.len.value==""都是字符串,就算传入formmatNO("4","5");也是可以的!

参考技术A str你写的应该是一个数组,但是你传入的是一个数字。追问

那这个要怎么传入值,才能显示格式化的结果?

追答

给他一个数组看一看

追问

不可能,这个怎么传数组呢!

追答

str你都用length属性了!!!他不是数组么?!!

追问

length获取他的长度

追答

length是属性,length()才是方法。你可以去看看array与string对于length的区别

参考技术B 那么长的代码还真的懒得看。这个是有什么问题吗?

java开发遇到一个js一个时间格式问题求解答

后端传来一个字符串 比如 “2012-07-03 12:08:29” 时间格式 通过js获得
前段js要获得当前时间 去减去“2012-07-03 12:08:29”

得到的结果 判断是不是大于10分钟

要怎么写 求答案

<SCRIPT LANGUAGE="JavaScript">
<!--
// 系统时间
var sysDate = new Date();
// 参数时间,-替换成/,传递字符串构造日期
var paraDate = new Date("2012-07-03 19:08:29".replace(/-/g,"/"));
// 两个日期相差的分钟数,/1000得到相差的秒数,/60得到分钟数
var mins = (sysDate - paraDate)/1000/60;
// 显示相差分钟数
alert(mins)
//-->
</SCRIPT>追问

结果对了 谢谢 哈 不过不明白的是
("2012-07-03 19:08:29".replace(/-/g,"/"));

为什么要
replace(/-/g,"/")

追答

不换的话不能正确转换成日期类型。

参考技术A 直接用时间截来传值,这样传的直接就是数字了,不用转 参考技术B 为什么要在前台判断呢?直接在后台判断不好吗? 参考技术C mark! 参考技术D 在后台 好做些

以上是关于js程序问题,求解答的主要内容,如果未能解决你的问题,请参考以下文章

深入JS正则先行和后行断言

求解一道Python编程题

未捕获的 TypeError:init 不是 mountLazyComponent 的函数

c++ 全局静态函数的理解

c语言编程题目求解

操作系统接口和调用--02