使用HTML(Java Script)编程:
创建自定义函数判断某从表单输入的字符串是否是合法的IP地址,用if条件判断。
合法的P地址符合这样的特征:
202.115.12.4,即由圆点.分割为四个部分,每个部分均为数字,大于等于0且小于等于255。
用if条件判断,但我写的很奇怪,我原来在PHP上写的用了list但在html上不知道怎么改
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>判断IP地址的合法性</title>
<script type="text/javascript">
function isValidIP(ip) {
var parts = ip.split('.');
if (parts.length !== 4) {
return false;
}
for (var i = 0; i < parts.length; i++) {
var part = parseInt(parts[i]);
if (isNaN(part) || part < 0 || part > 255) {
return false;
}
}
return true;
}
function checkIP() {
var ip = document.getElementById('ip').value;
if (isValidIP(ip)) {
alert('IP地址合法');
} else {
alert('IP地址不合法');
}
}
</script>
</head>
<body>
<label for="ip">请输入IP地址:</label>
<input type="text" id="ip" name="ip" placeholder="例如:202.115.12.4">
<button type="button" onclick="checkIP()">检查IP地址</button>
</body>
</html>
// 判断字符串是否是合法ip
let reg = /^((2[0-4]\d|25[0-5]|[01]?\d\d?)\.){3}(2[0-4]\d|25[0-5]|[01]?\d\d?)$/g
let ip = '20.20.20.20'
if (reg.test(ip)) {
console.log('合法ip')
} else {
console.log('不合法ip')
}
使用split根据原点分隔一下,再循环判断就行了呀
function checkIP() {
var ip = document.getElementById("ip").value;
var parts = ip.trim().split(".");
if (parts.length !== 4) {
alert("请输入正确的IP地址");
return false;
}
for (var i = 0; i < 4; i++) {
var part = parseInt(parts[i]);
if (isNaN(part) || part < 0 || part > 255) {
alert("请输入正确的IP地址")
return false;
}
}
alert("IP地址合法");
}