gpt4 book ai didi

javascript - 验证用逗号分隔的多个 IP 地址,而不使用正则表达式

转载 作者:行者123 更新时间:2023-12-02 23:52:10 24 4
gpt4 key购买 nike

(只是想指出,我已经检查了其他与我类似的问题,但找不到任何不使用正则表达式的问题,而那些没有使用正则表达式的问题似乎不适合我的情况。)

给定一个文本区域字段,用户可以使用 JavaScript 以逗号分隔的字符串形式输入多个 IP 地址,验证所有这些逗号分隔的 IP 地址的最佳方法是什么,例如:

1.1.1.1,2.2.2.2,3.3.3.,4.4.4.256

我显然需要测试有效的 IP 范围以及三个点和四个数字。

我更喜欢不使用正则表达式的解决方案。

最佳答案

您可以分割每个IP并检查数字是否有效。您还可以检查点 (.) 是否为 4。

function validateIp(ip) {
if ( ip == null || ip === '' ) {
return true;
}

const parts = ip.split('.');
if(parts.length !== 4) {
return true;
}

for(let i = 0; i < parts.length; i++) {
const part = parseInt(parts[i]);
if(part < 0 || part > 255) {
return true;
}
}

if(ip.endsWith('.')) {
return true;
}

return false;
}

const input = '1.1.1.1,2.2.2.2,3.3.3.,4.4.4.256';
const arr = input.split(',');
const wrongIps = arr.filter(validateIp);


console.log(arr)
console.log(wrongIps)

当然,您可以执行相反的操作并仅获取有效的 IP 地址。

Example

关于javascript - 验证用逗号分隔的多个 IP 地址,而不使用正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55593480/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com