什么是正确的 JavaScript IPv4 正则表达式,不包括 0.0.0.0 和 255.255.255.255?
What is proper JavaScript IPv4 regex excluding 0.0.0.0 and 255.255.255.255?
你们能告诉我 JavaScript 语言的 IPv4 正则表达式(不包括 0.0.0.0 和 255.255.255.255)吗?
实际上,我的测试正则表达式如下。但 0.0.0.0 和 255.255.255.255 仍然匹配。
那么,有没有比我的更好的正则表达式?以及排除 0.0.0.0 和 255.255.255.255
的任何解决方案
提前致谢。
function inputCheck(inputString) {
var inputList = inputString.split("\n");
var flagList = [];
var ipRegex = new RegExp("^(([1-9]?\d|1\d\d|2[0-5][0-5]|2[0-4]\d)\.){3}([1-9]?\d|1\d\d|2[0-5][0-5]|2[0-4]\d)$");
for (var i=0; i<inputList.length; i++) {
var tempResult = ipRegex.test(inputList[i]);
flagList.push(tempResult);
}
if (inputString.replace(/\s/gi, "").length === 0) {
return true;
} else if(flagList.indexOf(false) !== -1) {
return false;
} else {
return true;
}
}
尝试/^(?!0.0.0.0)(?!255.255.255.255)(?:\d|\d\d|1\d\d|2[0-4]\d|25[0-5])(?:\.(?:\d|\d\d|1\d\d|2[0-4]\d|25[0-5])){3}$/g
。
您可以在使用正则表达式之前简单地添加一个检查
return str !== '0.0.0.0' && str !== '255.255.255.255' ? regex.test(str) : false
这应该适合你:
^(?!0\.0\.0\.0|255\.255\.255\.255)((((2([0-4][0-9]|5[0-5]))|1[0-9]{2}|[0-9]{1,2})\.){3}(((2([0-4][0-9]|5[0-5]))|1[0-9]{2}|[0-9]{1,2})))$
^
- 开始
(?!0\.0\.0\.0|255\.255\.255\.255)
- 不是 0.0.0.0 或 255.255.255.255
((2([0-4][0-9]|5[0-5]))|1[0-9]{2}|[0-9]{1,2})
- 0-255
(((2([0-4][0-9]|5[0-5]))|1[0-9]{2}|[0-9]{1,2})\.){3}
- 0-255 后跟句号,三遍
(((2([0-4][0-9]|5[0-5]))|1[0-9]{2}|[0-9]{1,2}))
- 0-255
$
- 结束
你们能告诉我 JavaScript 语言的 IPv4 正则表达式(不包括 0.0.0.0 和 255.255.255.255)吗?
实际上,我的测试正则表达式如下。但 0.0.0.0 和 255.255.255.255 仍然匹配。
那么,有没有比我的更好的正则表达式?以及排除 0.0.0.0 和 255.255.255.255
的任何解决方案提前致谢。
function inputCheck(inputString) {
var inputList = inputString.split("\n");
var flagList = [];
var ipRegex = new RegExp("^(([1-9]?\d|1\d\d|2[0-5][0-5]|2[0-4]\d)\.){3}([1-9]?\d|1\d\d|2[0-5][0-5]|2[0-4]\d)$");
for (var i=0; i<inputList.length; i++) {
var tempResult = ipRegex.test(inputList[i]);
flagList.push(tempResult);
}
if (inputString.replace(/\s/gi, "").length === 0) {
return true;
} else if(flagList.indexOf(false) !== -1) {
return false;
} else {
return true;
}
}
尝试/^(?!0.0.0.0)(?!255.255.255.255)(?:\d|\d\d|1\d\d|2[0-4]\d|25[0-5])(?:\.(?:\d|\d\d|1\d\d|2[0-4]\d|25[0-5])){3}$/g
。
您可以在使用正则表达式之前简单地添加一个检查
return str !== '0.0.0.0' && str !== '255.255.255.255' ? regex.test(str) : false
这应该适合你:
^(?!0\.0\.0\.0|255\.255\.255\.255)((((2([0-4][0-9]|5[0-5]))|1[0-9]{2}|[0-9]{1,2})\.){3}(((2([0-4][0-9]|5[0-5]))|1[0-9]{2}|[0-9]{1,2})))$
^
- 开始(?!0\.0\.0\.0|255\.255\.255\.255)
- 不是 0.0.0.0 或 255.255.255.255((2([0-4][0-9]|5[0-5]))|1[0-9]{2}|[0-9]{1,2})
- 0-255(((2([0-4][0-9]|5[0-5]))|1[0-9]{2}|[0-9]{1,2})\.){3}
- 0-255 后跟句号,三遍(((2([0-4][0-9]|5[0-5]))|1[0-9]{2}|[0-9]{1,2}))
- 0-255$
- 结束