首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >需要检查srv预匹配

需要检查srv预匹配
EN

Stack Overflow用户
提问于 2018-04-22 19:21:06
回答 1查看 127关注 0票数 1

我正在尝试用jquery preg_match验证srv记录。

我需要的是:'PriorNumber WeightNumber PortNumber Address/server‘。这需要限制在最多5个部分在总数。

现在,我得到了一部分工作,但只有最后一部分不工作,当我使用一个域或ip地址。

代码语言:javascript
复制
/^((\d+ \d+ \d+\w+.(?:\s+\w+)\1{0,1}$))/

Works = 100 1 4234散Works

不工作: 100 1 4234 sipdsdfghj.sadas

https://www.regextester.com/?fam=103214

请帮我一下

完整代码验证

值= 100 1 4234 sipdsdfghj.asd

代码语言:javascript
复制
// Functie voor het valideren van srv record 'prioriteit gewicht poort doeladres'
jQuery.validator.addMethod("srvRecord", function(value, element) {
    if (value.indexOf(' ') >= 0) {

        console.log(value);

        if(value.match( /^(?<prior>\d+)\h+(?<weight>\d+)\h+(?<port>\d+)\h+(?:(?<ip>\d{1,3}(?:\.\d{1,3}){3})|(?<domain>\S+\.\S+))$/gm) !== null){
            return true;
        }

        return false
    } 
}, "* Amount must be greater than zero");
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-04-22 20:32:28

您可以尝试这个regex解决方案:

代码语言:javascript
复制
/^\d+(?:\s+\d+){2}\s+(?:\d{1,3}(?:\.\d{1,3}){3}|\S+\.\S+)$/

注意,它并不真正验证一个IP或域名,它只匹配类IP和类域子字符串。有关更精确的IP正则表达式的详细信息,请参见Regular expression to match DNS hostname or IP Address

详细信息

  • ^ -字符串的开始
  • \d+ - 1+数字
  • (?:\s+\d+){2} -2序列的1+白空间和1+数字
  • \s+ - 1+白空间
  • (?:\d{1,3}(?:\.\d{1,3}){3}|\S+\.\S+) --任一种:
    • \d{1,3}(?:\.\d{1,3}){3} -1到3位数,然后是3条.序列和1到3位数字
    • \S+\.\S+ - 1+非空白字符,.和1+非空白字符

  • $ -字符串的末端。
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49969833

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档