一、验证指定格式的十分数据是否是有效格式
比如9;9.1;9-1;9:1;09:01都表示09:01,符号需用英文输入法,在输入完成后,验证,如果正确,就显示输入的时间的正确标准格式,如果错误,输入框中不显示任何值
1、html布局
οnkeyup="this.value=this.value.replace(/[^\d\.\:-]/g,'')" -----input框中只能输入数字和英文状态下的“/”、“.”、“:”
<div id="dv_atime" data_time="clickCalendar" style="display:none;height: 130px;" class="timeDiv"><!-- ,onpicked:_table.draw -->
<div id="dv_top" style="width: 100%;height:70%;display:flex;justify-content:center;align-items:center;">
<input type="text" name="minAtime" onblur="isTime(this)" onkeyup="this.value=this.value.replace(/[^\d\.\:-]/g,'')">
<span style="width:17px;height:23px;margin-left: 10px;margin-right: 10px;">至</span>
<input type="text" name="maxAtime" onblur="isTime(this)" onkeyup="this.value=this.value.replace(/[^\d\.\:-]/g,'')">
</div>
<div id="dv_bottom" style="width: 100%;height:30%;border-top: 1px solid #bbb;bottom: 0px;display:flex;justify-content:center;align-items:center;">
<a style="margin-right: 30px;" onclick="_table.draw(),cancel('dv_atime')">确定</a>
<a style="margin-left: 30px;" onclick="cancel('dv_atime')">取消</a>
</div>
</div>
2、js
//验证表头下拉框输入的时间是否符合要求的方法
function isTime(obj){
var regnx = "";
var time = $(obj).val();
if(time.indexOf(".") >= 0 || time.indexOf(":") >= 0 || time.indexOf("-") >= 0){
regnx = '^(([0-9])|(1[0-9])|(2[0-3]))[\.\:-]{1}(([0-9])|([0-5][0-9]))$'
var str = time.match(regnx);
if(str != null){//匹配成功
var inTime = ""
if(str[1].length == 1){
inTime = "0"+str[1]+":";
}else{
inTime = str[1]+":";
}
if(str[5].length == 1){
inTime += ("0"+str[5]);
}else{
inTime += (str[5]);
}
$(obj).val(inTime);
}else{//匹配失败
$(obj).val("");
}
}else{
regnx = '^(([0-9])|(1[0-9])|(2[0-3]))$';
var str = time.match(regnx);
if(str != null){//匹配成功
if(time.length == 1){
$(obj).val("0"+str[0]+":00");
}else{
$(obj).val(str[0]+":00");
}
}else{//匹配失败
$(obj).val("");
}
}
}
3、页面效果图