javascript - 允许在 javascript 中添加一位或两位数的时间

标签 javascript regex validation time

这是 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:0009: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)

enter image description here

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/

相关文章:

javascript - 使用 Regex 和 Javascript 从字符串中获取基本 url

regex - 正则表达式:- String can contain any characters but should not be empty

css - 除了 jigsaw 之外,还有其他 CSS 验证器吗?

c# - 如果JavaScript验证失败,则防止回发页面

javascript - 最低有效 JSON 是多少?

javascript - 相对于其父级位置重新定位 Sprite

javascript - track by 的下拉绑定(bind)问题

javascript - 在拦截器中使用 `$mdToast` 触发循环依赖

javascript - 使用javascript获取文件的修改时间戳

regex - 何时使用正则表达式与内置字符串方法?