javascript - 需要检查srv preg_match

标签 javascript regex

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

我需要的是:'PriorNumber WeightNumber PortNumber 地址/服务器'。 这需要限制在总共最多 5 个部分。

现在我有一部分工作,但只有最后一部分在我使用域或 IP 地址时不工作。

/^((\d+ \d+ \d+\w+.(?:\s+\w+)\1{0,1}$))/

有效 = 100 1 4234 sipdsdfghj

不工作:100 1 4234 sipdsdfghj.sadas

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

请帮帮我

完整代码验证

值 = 100 1 4234 sipdsdfghj.asd

// 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");

最佳答案

您可以试试这个正则表达式解决方案:

/^\d+(?:\s+\d+){2}\s+(?:\d{1,3}(?:\.\d{1,3}){3}|\S+\.\S+)$/

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

详情

  • ^ - 字符串的开始
  • \d+ - 1+ 位
  • (?:\s+\d+){2} - 1+ 个空格和 1+ 个数字的 2 个序列
  • \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+ 非空白字符
  • $ - 字符串结尾。

关于javascript - 需要检查srv preg_match,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49969833/

相关文章:

javascript - 如何阻止 Uploadify 显示进度框

PHP - 正则表达式删除引号并添加大括号?

javascript - React Native FlatList 只渲染 10 个项目

javascript - 如何创建递归对象树数组以供以后迭代?

javascript - 设置 mongo 的更好方法是什么?

javascript - 使用正则表达式拆分在数组中创建 2 个空元素

c# - "111 -> c:\my source\file1.cpp (no code)"的正则表达式 (C#)

php - 如何使用正则表达式命名 José González?

regex - 匹配Cookie字符串中的所有内容,但特定键后的值除外

javascript - 如果使用 JS_NewGlobalObject : SpiderMonkey 程序崩溃