占位符为的Jquery掩码未按预期工作

占位符为的Jquery掩码未按预期工作,jquery,regex,Jquery,Regex,我试图为用户输入时间的文本框创建一个占位符,以15分钟为增量。(例如,1h 30m为有效增量,2h 23m为无效增量) 我可以使用带有翻译的占位符来实现这一点: $('#withTranslation').mask( 'Ah BCm', { translation: { 'A': { pattern: /[0-9]/ }, 'B': { pattern: /[1|3|4]/ },

我试图为用户输入时间的文本框创建一个占位符,以15分钟为增量。(例如,1h 30m为有效增量,2h 23m为无效增量)

我可以使用带有翻译的占位符来实现这一点:

$('#withTranslation').mask(
        'Ah BCm', {
        translation: {
            'A': { pattern: /[0-9]/ },            
            'B': { pattern: /[1|3|4]/ },
            'C': { pattern: /[0|5]/ },            
        },
        placeholder: "_h __m"
    });
但这仍然允许值Xh 35m和Xh 40m无效。有没有更好的办法让我做到这一点

此外,我希望在用户输入/删除文本时保留占位符,如下所示:

(见附件)

但是,当用户退格时,占位符中的“m”再次出现在一个有趣的位置:


(请参阅)

面具很棒,但是,如果只使用1-9的简单小时下拉列表和0、5、10、15、20、25、30的分钟下拉列表,不是更方便用户吗。用键盘打字对我来说似乎很奇怪。IMO口罩非常适用于电话号码和“即时”电子邮件验证。对我来说,这似乎是一个放置掩码的错误位置。我考虑了一个下拉列表-问题是用户一次会填写很多这样的文本框(这是一个时间表系统)。用鼠标做这件事可能比用键盘慢。