这是 jsFiddle
HTML:
<form>
<input name="time" placeholder="hh:mm"><br>
<input type="submit">
</form>
JS:
$.validator.addMethod("time24", function(value, element) {
if (!/^\d{2}:\d{2}$/.test(value)) return false;
var parts = value.split(':');
if (parts[0] > 23 || parts[1] > 59) return false;
return true;
}, "Invalid time format.");
$(function() {
$('form').validate({
rules: {
time: {
required: true,
time24: true
}
}
});
});
我想允许将 hh
添加为一位或两位数字,例如 9:00
和 09:00
都应该可以。我试图在 if (!/^\d{2}:\d{2}$/.test(value)) return false;
中进行更改,但它不起作用。任何人都可以帮忙吗?
最佳答案
可以使用{n,m}
量词,\d{1,2}
表示匹配数字一到两次
或者你可以进一步扩展你的正则表达式
(?:0?\d|1\d|2[0-3]):(?:[0-5]\d|60)
let test = (str)=>{
return /^(?:0?\d|1\d|2[0-3]):(?:[0-5]\d|60)$/.test(str)
}
console.log(test('09:00'))
console.log(test('9:00'))
console.log(test('90:00'))
console.log(test('23:00'))
console.log(test('23:59'))
关于javascript - 允许在 javascript 中添加一位或两位数的时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57858447/