我正在尝试设置jQuery掩码插件,只接受字段最后两位数字的某些数据。
我想要的是:YYYY [03],YYYY [06],YYYY [09],YYYY [12]被标记为有效且所有其他输入被标记为无效。
示例:
到目前为止,我所拥有的是:
$('#YearMonth').mask('0000XZ', {
translation: {
'X': {
pattern: /[0-1]/, optional: true
},
'Z': {
pattern: /[0-9]/, optional: true
}
}
});
当然;这仍然无法正常工作。如果有办法使用jQuery掩码插件来做到这一点?或者我应该尝试另一种方法吗?
谢谢
答案 0 :(得分:1)
普通的javascript,使用正则表达式
/\d{4}03|06|09|12/
function validation(s) {
var r = /\d{4}03|06|09|12/;
return s.match(r) ? s + ": Valid" : s + ": Invalid";
}
//test
["201612", "201511", "200403", "201102"].forEach(e =>
document.write(validation(e) + '<br>'));
答案 1 :(得分:0)
您可以将RegExp
属性与\d{4}(0[369]|12)
required
一起使用;如果input
value
为空字符串,请添加oninput
属性以阻止提交。如果input
与value
不匹配,您还可以使用pattern
事件清除input
字段。如果value
RegExp
与pattern
属性document.getElementById("YearMonth")
.oninput = function(e) {
if (this.value.length === this.maxLength
&& !new RegExp(this.pattern).test(this.value)) {
alert("Invalid input\n" + this.title);
this.value = "";
}
}
不匹配,则表单不应提交。
<form>
<label for="YearMonth">
<input id="YearMonth" type="text" pattern="\d{4}(0[369]|12)" minlength="6" maxlength="6" title="Input: YYYY[03] OR YYYY[06] OR YYYY[09] OR YYYY[12]" placeholder="YYYY[03,06,09,12]" required />
</label>
<input type="submit" />
</form>
&#13;
Platform.getBundle("").getEntry("")
&#13;