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

复制以下代码即可看到效果

<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>


你可能感兴趣的:(JavaScript,正则表达式,function,server,input,textbox)