【问题标题】:how to validate mac address in the form field如何在表单字段中验证mac地址
【发布时间】:2018-08-16 07:57:50
【问题描述】:

我对此真的很陌生。我想在表单字段中验证 mac 地址,并显示 mac 地址的格式是否错误/无效。我尝试按照 xxxmatko 编码来验证 mac 地址,但它什么也没显示。只是一个输入文本,不能很好地与正则表达式一起工作。如果有人可以提供帮助,我会很高兴。如何验证表单域中的mac地址?

$(function() {
var regexp = /^(([A-Fa-f0-9]{2}[:]){5}[A-Fa-f0-9]{2}?)+$/i;

$("#mac_address_wifi1").on("input", function(e) {
var tb = $(this);
    var val = tb.val().replace(/[^a-f0-9]/ig, "");
    var r = /([a-f0-9]{2})([a-f0-9]{2})/i;
    while (r.test(val)) {
        val = val.replace(r, '$1' + ':' + '$2');
    }
    val = val.slice(0, 17);
    tb.val(val);    
    tb.toggleClass("badMac", !regexp.test(tb.val()));
});

});

【问题讨论】:

    标签: regex validation


    【解决方案1】:

    我猜问题出在这里:

    var r = /([a-f0-9]{2})([a-f0-9]{2})/i;
    while (r.test(val)) {
        val = val.replace(r, '$1' + ':' + '$2');
    }
    

    构造while (regex) 匹配正则表达式一次,然后在上一次匹配之后再次尝试,尽可能多次。因此,您实际上是在循环遍历由四个十六进制数字组成的组,而不是您显然想要的两个数字。

    【讨论】:

      猜你喜欢
      • 2017-06-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-08-31
      • 2012-07-12
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多