这是默认情况下的方式
$('.ip_address').mask('ZZZ.ZZZ.ZZZ.ZZZ', {
translation:
{
'Z': {
pattern: /[0-9]/, optional: false
}
}
});
但我尝试的是:
$('.ip_address').mask('Z', {
translation:
{
'Z': {
pattern: /^(\d|[1-9]\d|1\d\d|2([0-4]\d|5[0-5]))\.(\d|[1-9]\d|1\d\d|2([0-4]\d|5[0-5]))\.(\d|[1-9]\d|1\d\d|2([0-4]\d|5[0-5]))\.(\d|[1-9]\d|1\d\d|2([0-4]\d|5[0-5]))$/, optional: false
}
}
});
常规用于ip检查范围255.255.255.255
,但问题是\.
正则表达没有通过,真的无法找到谷歌的任何工作示例,你能吗?给我一个关于如何使用jquery mask做正确的提示?
Google中的示例依赖于999.999.999.999
范围,例如此处https://igorescobar.github.io/jQuery-Mask-Plugin/
答案 0 :(得分:0)
这个jQuery插件具有有限的内置数据验证功能。但您仍然可以使用事件处理程序来执行自己的数据验证。你可以尝试这样的事情:
$('.ip_address').mask('Z99.Z99.Z99.Z99', {
translation: {
'Z': {
pattern: /[0-2]/,
optional: true
},
},
onKeyPress: function(val, e, el, options) {
var match = val.match(/[0-9]+$/);
if (match) {
var v = parseInt(match[0]) || 0;
$(el).val(val.substr(0, match.index) + ((v > 255) ? 255 : v));
}
}
});