在前端开发中,经常需要对用户输入进行校验,尤其是涉及到网络相关的信息,例如IP地址、URL等。本文将介绍如何使用JavaScript实现对IP地址的验证。
IP地址格式
IP地址是由32位二进制数组成,通常表示为4个10进制数,每个数之间用"."分隔。例如:192.168.0.1。
IP地址的有效范围是0.0.0.0~255.255.255.255。IP地址的验证包括以下几个方面:
- 是否为合法的IPv4地址
- 是否在有效范围内
正则表达式验证
正则表达式是一种强大的文本处理工具,可以用来匹配字符串的模式。使用正则表达式可以快速简便地验证IP地址的格式。
function isIPv4(str) { const reg = /^(\d+)\.(\d+)\.(\d+)\.(\d+)$/; const matches = reg.exec(str); return matches !== null && matches.length === 5 && matches[1] <= 255 && matches[2] <= 255 && matches[3] <= 255 && matches[4] <= 255; }
上述代码中,我们通过正则表达式/^(\d+)\.(\d+)\.(\d+)\.(\d+)$/
来验证IP地址的格式。其中\d
表示数字字符,\.
表示匹配小数点。正则表达式的^
和$
分别表示匹配字符串的开始和结尾。
使用reg.exec(str)
方法可以获取IP地址中每个数字的值。如果返回结果不为null
,而且获取到的数字都小于等于255,则表示验证通过。
IP地址范围验证
对于IP地址的有效范围验证,我们可以使用下面的代码:
-- -------------------- ---- ------- -------- ----------------- -------- ------ - ----- ------ ----- ----- ----- - ------------------- ----- ------ ----- ----- ----- - ----------------- ----- ----- ---- ---- ---- - -------------- ----- ----- - ---- - --- -- - - ---- - --- -- - - ---- - --- - ----- ----- --- - ---- - --- -- - - ---- - --- -- - - ---- - --- - ----- ----- --- - --- - --- -- - - --- - --- -- - - --- - --- - ---- ------ --- -- ----- -- --- -- ---- -
以上代码将三个IP地址转换成32位无符号整数,然后通过比较大小来判断输入IP地址是否在有效范围内。
示例
const ip = '192.168.0.1'; if (isIPv4(ip) && isIPv4InRange(ip, '192.168.0.0', '192.168.255.255')) { console.log(`${ip} 是有效的局域网IP地址`); } else { console.log(`${ip} 不是有效的局域网IP地址`); }
以上代码验证了192.168.0.1
是否为有效的局域网IP地址,并输出结果。
总结
本文介绍了如何使用JavaScript实现对IP地址的验证。通过正则表达式可以轻松地验证IP地址格式,通过将IP地址转换成32位无符号整数可以判断其是否在有效范围内。这些技巧不仅可以应用于IP地址的验证,还可以用于其他涉及到网络相关信息的校验。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/2923