我正在尝试使用 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/