Công cụ quét mạng của bạn rất khó chọn về đầu vào và ngay lập tức gặp sự cố nếu bạn cung cấp cho nó một địa chỉ IPv4 chứa các ký tự không chính xác hoặc không được định dạng chính xác.
Địa chỉ IPv4 là địa chỉ số 32 bit được viết dưới dạng bốn số cách nhau bởi dấu chấm. Mỗi số có thể từ 0 đến 255 .
Chúng ta cần viết một công cụ để xác thực trước đầu vào để tránh những sự cố đó và công cụ cụ thể của chúng tôi rất kén chọn: Một định dạng hợp lệ sẽ trông giống như a.b.c.d
nơi a, b, c và d:
- Có thể là một
0
hoặc một số tự nhiên không có số 0 đứng đầu . - Nên từ 0 - 255 (đã bao gồm).
- Nên không chứa các ký hiệu đặc biệt như
+
,-
,,
, và những người khác. - Nên là số thập phân (cơ sở
10
)
Đầu vào : Một chuỗi
Đầu ra : Giá trị Truthy hoặc Falsey (giá trị tùy ý cũng được chấp nhận)
Các trường hợp thử nghiệm :
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)
Đây là môn đánh gôn , vì vậy ít byte nhất sẽ giành chiến thắng!
Lưu ý cho người dùng - nếu bạn muốn thêm một số trường hợp thử nghiệm khác, bạn được hoan nghênh (bằng cách đề xuất chỉnh sửa). Nhưng, hãy chắc chắn rằng các trường hợp thử nghiệm không lặp lại! Cảm ơn
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
.