MCPcopy Create free account
hub / github.com/buger/jsonparser / validJSONNumber

Function validJSONNumber

parser.go:2486–2535  ·  view source on GitHub ↗

SYS-REQ-112

(value []byte)

Source from the content-addressed store, hash-verified

2484
2485// SYS-REQ-112
2486func 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}

Callers 1

validContainerPrimitiveFunction · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected