如何设置jquery掩码ip范围为255.255.255.255?

时间:2017-03-13 10:33:01

标签: javascript jquery

这是默认情况下的方式

  $('.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/

1 个答案:

答案 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));
        }
    }
});