用于反向DNS输入的正则表达式

问题描述 投票:0回答:1

我正在尝试验证文本字段,如果它匹配这种模式用于反向DNS目的

我试过^\d+[^.*]|\.\d+|-in.addr.arpa.$

93    
93.12   
93.32.12 
93.32.12.10-in.addr.arpa.  
www.domain.com   
www  
domain..983   

但它匹配最后一个错误,它应该只匹配前4个例子

这是我的规则

function check_record_NPTR(field){
    var regex = /^\d+[^.*]|\.\d+|-in.addr.arpa.$/;
    if(!regex.test(field.value)){
        highlight(field,true);
        return false;
    }
    else{
        highlight(field,false);
        return true;
    }

}
javascript html regex
1个回答
1
投票

你想要使用的正则表达式是:^(?:(?:\d+\.)*\d+(?:-in\.addr\.arpa\.)?)$

它将选择以数字开头的每个条目或以点分隔的数字列表,这些条目可选地在字符串-in.addr.arpa上结束。

根据我的经验,通过实验学习正则表达式的一个很好的来源是regexr.com

为了使其足以用于反向DNS目的,您应该阅读如何限制每个数字中的数字数量并将其添加到正则表达式。有大量关于此的文档。

© www.soinside.com 2019 - 2024. All rights reserved.