我正在尝试用jquery preg_match验证srv记录。
我需要的是:'PriorNumber WeightNumber PortNumber Address/server‘。这需要限制在最多5个部分在总数。
现在,我得到了一部分工作,但只有最后一部分不工作,当我使用一个域或ip地址。
/^((\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
// 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");发布于 2018-04-22 20:32:28
您可以尝试这个regex解决方案:
/^\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+非空白字符
$ -字符串的末端。https://stackoverflow.com/questions/49969833
复制相似问题