您的网络扫描工具烦人地挑剔输入,如果您向它提供了包含不正确字符或格式不正确的IPv4地址,则会立即崩溃。
IPv4地址是一个32位数字地址,用四个数字隔开,每个数字用句点分隔。每个数字可以为零到255。
我们需要编写一个工具来对输入进行预验证以避免这些崩溃,并且我们的特定工具很挑剔:有效的格式如下所示:a.b.c.d
a,b,c和d:
- 可以是一个无前导零
0
的自然数。 - 应介于0-255(含)之间。
- 如果不包含特殊符号
+
,-
,,
,等。 - 应为小数(以开头
10
)
输入:字符串
输出:真值或假值(也可以接受任意值)
测试用例:
Input | Output | Reason
| |
- 1.160.10.240 | true |
- 192.001.32.47 | false | (leading zeros present)
- 1.2.3. | false | (only three digits)
- 1.2.3 | false | (only three digits)
- 0.00.10.255 | false | (leading zeros present)
- 1.2.$.4 | false | (only three digits and a special symbol present)
- 255.160.0.34 | true |
- .1.1.1 | false | (only three digits)
- 1..1.1.1 | false | (more than three periods)
- 1.1.1.-0 | false | (special symbol present)
- .1.1.+1 | false | (special symbol present)
- 1 1 1 1 | false | (no periods)
- 1 | false | (only one digit)
- 10.300.4.0 | false | (value over 255)
- 10.4F.10.99 | false | (invalid characters)
- fruit loops | false | (umm...)
- 1.2.3.4.5 | false | (too many periods/numbers)
- 0.0.0.0 | true |
- 0.0 0.0. | false | (periods misplaced)
- 1.23..4 | false | (a typo of 1.2.3.4)
- 1:1:1:1:1:1:1:1| false | (an IPv6 address, not IPv4)
这是代码高尔夫球,因此将赢得最少的字节!
给用户的提示 -如果您想添加更多的测试用例,欢迎您(建议进行修改)。但是,请确保测试用例不会重复!谢谢
1.1.1.1.1
,1.1.1.1.
,.1.1.1
,1..1.1
,1..1.1.1
,1.1.1.0
,1.1.1.-0
,1.1.1.+1
,1.1.1.1E1
,1.1.1.256
,1.1.1.0x1
,255.255.255.255
,0.0.0.0
,'or 1=1--
,<empty string>
,1 1 1 1
,1,1,1,1
。