SYS-REQ-112
(value []byte)
| 2484 | |
| 2485 | // SYS-REQ-112 |
| 2486 | func validJSONNumber(value []byte) bool { |
| 2487 | i := 0 |
| 2488 | if value[i] == '-' { |
| 2489 | i++ |
| 2490 | if i == len(value) { |
| 2491 | return false |
| 2492 | } |
| 2493 | } |
| 2494 | |
| 2495 | if value[i] == '0' { |
| 2496 | i++ |
| 2497 | if i < len(value) && value[i] >= '0' && value[i] <= '9' { |
| 2498 | return false |
| 2499 | } |
| 2500 | } else { |
| 2501 | if value[i] < '1' || value[i] > '9' { |
| 2502 | return false |
| 2503 | } |
| 2504 | for i < len(value) && value[i] >= '0' && value[i] <= '9' { |
| 2505 | i++ |
| 2506 | } |
| 2507 | } |
| 2508 | |
| 2509 | if i < len(value) && value[i] == '.' { |
| 2510 | i++ |
| 2511 | start := i |
| 2512 | for i < len(value) && value[i] >= '0' && value[i] <= '9' { |
| 2513 | i++ |
| 2514 | } |
| 2515 | if i == start { |
| 2516 | return false |
| 2517 | } |
| 2518 | } |
| 2519 | |
| 2520 | if i < len(value) && (value[i] == 'e' || value[i] == 'E') { |
| 2521 | i++ |
| 2522 | if i < len(value) && (value[i] == '+' || value[i] == '-') { |
| 2523 | i++ |
| 2524 | } |
| 2525 | start := i |
| 2526 | for i < len(value) && value[i] >= '0' && value[i] <= '9' { |
| 2527 | i++ |
| 2528 | } |
| 2529 | if i == start { |
| 2530 | return false |
| 2531 | } |
| 2532 | } |
| 2533 | |
| 2534 | return i == len(value) |
| 2535 | } |
no outgoing calls
no test coverage detected