我有一个问题,关于如何一起验证 IP:Port。 示例:
192.158.2.10:80 <--有效
192.158.2.10 <---无效
所以端口是必须的,我找到了一些 IP 验证(正则表达式),但要与端口结合起来运气不好。我不想为端口使用单独的输入字段。
我的想法是这样的:
var str = '192.168.10.2:80';
var substr = ':';
if (str.indexOf(substr) !== -1){
var pieces = str.split(':', 2);
var ip = pieces[0];
var port = pieces[1];
//and here validate ip and port
}else{
console.log('the char '+substr+' is not there');
}
这是正确的方法吗?还是有更简单的?
最佳答案
为了验证数字是否在可接受的范围内,正则表达式必须非常长。相反,我会使用这个:
function validateIpAndPort(input) {
var parts = input.split(":");
var ip = parts[0].split(".");
var port = parts[1];
return validateNum(port, 1, 65535) &&
ip.length == 4 &&
ip.every(function (segment) {
return validateNum(segment, 0, 255);
});
}
function validateNum(input, min, max) {
var num = +input;
return num >= min && num <= max && input === num.toString();
}
关于javascript - JS验证IP :Port,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21060645/