您的位置:首页 > Web前端 > JavaScript

javascript实现时间格式的控制以及容错处理

2007-09-19 17:07 731 查看
复制以下代码即可看到效果

<style type="text/css">
/*输入错误时,边框的样式*/
.error_input
{
border-color:Red;
border-style:dashed;
}
</style>

<body>
<form id="form1" runat="server">
<div>

请输入时间:<asp:TextBox ID="TextBox1" runat="server" onblur="timeFormatControl(this)"></asp:TextBox></div>
</form>
</body>
</html>
<script language="JavaScript" type="text/javascript">
String.prototype.trim=function () //为String对象添加trim函数
{
return this.replace(/^(/s*)|(/s*)$/g,""); //去掉前后空格
}
function timeFormatControl(obj)
{
var time;
var strTime = obj.value.trim();
if (/^([/d]{1,2}([,.;:。][/d]{1,2})?)$/.test(strTime)) //正则表达式进行初步的判断
{

time = checkTime(strTime);
//alert("dd")
}
else
{
obj.className = "error_input";
return false;

}
if (time == false)
{
obj.className = "error_input";
return false;
}
else
{
obj.className = "";
}
obj.value = time;
}
//对输入进行二次判断
function checkTime(strTime)
{
strTime = strTime.split(/[,.;:。]/); //把“小时”和“分钟”拆分为两部分。strTime[0]和strTime[1]

if(0 < parseFloat(strTime[0]) && parseFloat(strTime[0]) < 24 )
{

if (strTime[0].length == 1) //当输入的“小时”,只有一位的时候,则在它的前面添加0
{
strTime[0] = "0"+strTime[0];
}
}
else
{

return false;
}

if((0 <= Number(strTime[1])&& parseFloat(strTime[1])< 60)||strTime[1]== null)
{
if (strTime[1] == null) //当只输入"小时"的时候,给strTime[1]赋00
{
strTime[1] = "00";
}
if (strTime[1].length == 1) //当输入的“分钟”只有一位的时候,则在它的前面添加0
{
strTime[1] = "0"+strTime[1];
}

}
else
{

return false;
}

var time = strTime[0]+":"+strTime[1]; //组合“小时”和“ 分钟”
return time;
}
</script>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: