SYS-REQ-112
(value []byte)
| 2371 | |
| 2372 | // SYS-REQ-112 |
| 2373 | func validJSONNumber(value []byte) bool { |
| 2374 | i := 0 |
| 2375 | if value[i] == '-' { |
| 2376 | i++ |
| 2377 | if i == len(value) { |
| 2378 | return false |
| 2379 | } |
| 2380 | } |
| 2381 | |
| 2382 | if value[i] == '0' { |
| 2383 | i++ |
| 2384 | if i < len(value) && value[i] >= '0' && value[i] <= '9' { |
| 2385 | return false |
| 2386 | } |
| 2387 | } else { |
| 2388 | if value[i] < '1' || value[i] > '9' { |
| 2389 | return false |
| 2390 | } |
| 2391 | for i < len(value) && value[i] >= '0' && value[i] <= '9' { |
| 2392 | i++ |
| 2393 | } |
| 2394 | } |
| 2395 | |
| 2396 | if i < len(value) && value[i] == '.' { |
| 2397 | i++ |
| 2398 | start := i |
| 2399 | for i < len(value) && value[i] >= '0' && value[i] <= '9' { |
| 2400 | i++ |
| 2401 | } |
| 2402 | if i == start { |
| 2403 | return false |
| 2404 | } |
| 2405 | } |
| 2406 | |
| 2407 | if i < len(value) && (value[i] == 'e' || value[i] == 'E') { |
| 2408 | i++ |
| 2409 | if i < len(value) && (value[i] == '+' || value[i] == '-') { |
| 2410 | i++ |
| 2411 | } |
| 2412 | start := i |
| 2413 | for i < len(value) && value[i] >= '0' && value[i] <= '9' { |
| 2414 | i++ |
| 2415 | } |
| 2416 | if i == start { |
| 2417 | return false |
| 2418 | } |
| 2419 | } |
| 2420 | |
| 2421 | return i == len(value) |
| 2422 | } |
no outgoing calls
no test coverage detected