SYS-REQ-112
(value []byte)
| 2430 | |
| 2431 | // SYS-REQ-112 |
| 2432 | func validJSONNumber(value []byte) bool { |
| 2433 | i := 0 |
| 2434 | if value[i] == '-' { |
| 2435 | i++ |
| 2436 | if i == len(value) { |
| 2437 | return false |
| 2438 | } |
| 2439 | } |
| 2440 | |
| 2441 | if value[i] == '0' { |
| 2442 | i++ |
| 2443 | if i < len(value) && value[i] >= '0' && value[i] <= '9' { |
| 2444 | return false |
| 2445 | } |
| 2446 | } else { |
| 2447 | if value[i] < '1' || value[i] > '9' { |
| 2448 | return false |
| 2449 | } |
| 2450 | for i < len(value) && value[i] >= '0' && value[i] <= '9' { |
| 2451 | i++ |
| 2452 | } |
| 2453 | } |
| 2454 | |
| 2455 | if i < len(value) && value[i] == '.' { |
| 2456 | i++ |
| 2457 | start := i |
| 2458 | for i < len(value) && value[i] >= '0' && value[i] <= '9' { |
| 2459 | i++ |
| 2460 | } |
| 2461 | if i == start { |
| 2462 | return false |
| 2463 | } |
| 2464 | } |
| 2465 | |
| 2466 | if i < len(value) && (value[i] == 'e' || value[i] == 'E') { |
| 2467 | i++ |
| 2468 | if i < len(value) && (value[i] == '+' || value[i] == '-') { |
| 2469 | i++ |
| 2470 | } |
| 2471 | start := i |
| 2472 | for i < len(value) && value[i] >= '0' && value[i] <= '9' { |
| 2473 | i++ |
| 2474 | } |
| 2475 | if i == start { |
| 2476 | return false |
| 2477 | } |
| 2478 | } |
| 2479 | |
| 2480 | return i == len(value) |
| 2481 | } |
no outgoing calls
no test coverage detected