我想用自定义格式验证IP地址:
我期望的格式:
ip address - any value - anynumber
上面的格式有4个部分:
( - )
)示例:213.39.59.78 - Public3 address.info - 24
function customFormat(val) {
return /^(?=\d+\.\d+\.\d+\.\d+$)(?:(?:25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9][0-9]|[0-9])\.?){4}$/.test(val);
}
var testFormat = '192.68.35.35';
document.getElementById('regex').innerHTML += testFormat + ' ' + (customFormat(testFormat) ? 'Valid Format!' : 'Invalid Format!');
<ul id="regex"></ul>
上面的代码使用了来自here的正则表达式,但只是验证了ip地址。
如何验证我期望的格式的IP地址?
答案 0 :(得分:1)
这是你可以尝试的东西:
function customFormat(val) {
return /^(?=\d+\.\d+\.\d+\.\d+)(?:(?:25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9][0-9]|[0-9])\.?){4} - ((?! -).)+ - \d{1,3}$/.test(val);
}
var testFormat = '213.39.59.78 - Public3 address.info - 24';
document.getElementById('regex').innerHTML += testFormat + ' ' + (customFormat(testFormat) ? 'Valid Format!' : 'Invalid Format!');
&#13;
<ul id="regex"></ul>
&#13;
正则表达式:
/^(?=\d+\.\d+\.\d+\.\d+)(?:(?:25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9][0-9]|[0-9])\.?){4} - ((?! -).)+ - \d{1,3}$/
正则表达式有5个部分,几乎是你列出的部分:
/^
(?=\d+\.\d+\.\d+\.\d+)(?:(?:25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9][0-9]|[0-9])\.?){4}
-
( - )
)((?! -).)+
-
。-
( - )
)\d{1,3}
$/
答案 1 :(得分:0)
功能验证IP地址(ipaddress){
if(/^(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?).(25 [0-5] | 2 [0-4] [0-9] | [01] [0-9] [0-9])(25 [0-5] |?2 [0-4] [0-9] | [01 ?] [0-9] [0-9])(25 [0-5] | 2 [0-4] [0-9] | [01] [0-9] [0-9]? )$ / .test(ipaddress)){
返回(真)
}
提示(&#34;您输入了无效的IP地址!&#34;)
返回(假)
}
答案 2 :(得分:0)
function ValidateIPaddress(ipaddress)
{
if (/^(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$/.test(myForm.emailAddr.value))
{
return (true)
}
alert("You have entered an invalid IP address!")
return (false)
}
答案 3 :(得分:0)
通过解析字符串并测试每个部分,您将更容易遵循代码,并且能够根据错误返回错误,如果测试失败,例如:
function checkIP(s) {
var t = s.split(' - ');
// Test number of parts
if (t.length != 3)
return 'Error: format must be <IP address> - <string, no "-"> - <1 to 3 digits>: ' + s;
// Test IP address
if (!t[0].split('.').every(v => v >= 0 && v <= 255))
return 'Error: IP address is invalid: ' + t[0];
// Test trailing number
if (!/^\d{1,3}$/.test(t[2]))
return 'Error: String must end with 1 to 3 digits: ' + t[2];
// Must be valid
return 'Valid string';
}
// Some tests
['213.39.59.78 - Public3 address.info - 222',
'213.39.59.78 - Public3 address.info - 2222',
'213.39.59.78 - Public3 address.info',
'213.39.59.788 - Public3 address.info - 222'
].forEach(s => console.log(`Testing "${s}"\n ${checkIP(s)}`));
您可能希望抛出错误,而不是只返回带有错误消息的字符串。