IP地址验证
IP地址的验证方法。其中,包括简单IP地址、精确IP地址(这里的IP地址都是32位IP地址)
简单IP地址验证
简单IP地址组成规则为:(1-3位整数).(1-3位整数).(1-3位整数).(1-3位整数)。因此,要验证简单IP地址,首先需要验证1-3位整数。以下正则表达式都能够验证1~3位整数
[1-9]\d{0,2}
[1-9][0-9]{0,2}
综合上述的正则表达式,以下正则表达式都能够验证简单IP地址。
^([1-9]\d{0,2}\.){3}[1-9]\d{0,2}$
^([1-9][0-9]{0,2}\.){3}[1-9][0-9]{0,2}$
正则表达式的解释如下
^、$分别验证宇符串的开始和结束位置。
([1-9]\d{0,2}){3}中的[1-9]\d{0,2}验证1-3位整数,\.验证字符"."。
([1-9]\d{0,2}\.){3}表示3位整数和字符"."可以出现3次
精确IP地址验证
正则表达式^([1-9]\d{0,2}\.){3}[1-9]\d{0,2}$能够验证简单IP地址。同时,它也能够匹配形如666.777.888.999的IP地址。显然,这个IP地址是不合法的。在32位IP地址中,每个数值都应该是在0-255范围内。因此,在IP地址的编码规则(1-3位整数).(1-3位整数).(1-3位整数).(1-3位整数)中,每一个整数都应该在0-255范围内。在此,称该类型的IP地址的验证为精确IP地址验证,要验证精确IP地址,首先需要验证0-255范围内的整数。在此,把0-255范围划分以下4个范围
0-199
100-199
200-249
250-255
以下正则表达式都能够验证0-99范围内的整数
([1-9]\d?)|0
([1-9][0-9]?)|0
以下正则表达式都能够验证100-199范围内的整数。
1\d{2}
1[0-9]{2}
以下正则表达式都能够验证200-249范围内的整数
2[0-4]\d
2[0-4][0-9]
以下正则表达式能够验证250-255范围内的整数。
25[0-5]
综上所述,以下正则表达式能够验证0-255范围内的整数。
(25[0-5])|(2[0-4]\d)|(1\d{2})|(([1-9]\d?)|0)
如果把0-99和100-199合并为一个范围,即0-199。以下正则表达式能够验证0-199范围内的整数。
[01]?\d\d?
因此,以下正则表达式也能够验证0-255范围内的整数。
(25[0-5])|(2[0-4]\d)|([01]?\d\d?)
综合上述的正则表达式,以下正则表达式能够验证精确IP地址
^(((25[0-5])|(2[0-4]\d)|([01]?\d\d?))\.){3}((25[0-5])|(2[0-4]\d)|([01]?\d\d?))$
评论区