locutus
Version:
Locutus other languages' standard libraries to JavaScript for fun and educational purposes
27 lines (26 loc) • 1.07 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.ParseInt = ParseInt;
function ParseInt(s, base, _bitSize) {
// discuss at: https://locutus.io/golang/strconv/ParseInt
// parity verified: Go 1.23
// original by: Kevin van Zonneveld (https://kvz.io)
// note 1: Interprets a string s in the given base (0, 2 to 36).
// note 1: Returns [value, null] on success, [0, error] on failure.
// example 1: ParseInt('42', 10, 64)[0]
// returns 1: 42
// example 2: ParseInt('ff', 16, 64)[0]
// returns 2: 255
// example 3: ParseInt('1010', 2, 64)[0]
// returns 3: 10
s = (s + '').trim();
base = Number.parseInt(String(base), 10) || 10;
if (base < 2 || base > 36) {
return [0, new Error('strconv.ParseInt: invalid base ' + base)];
}
const result = parseInt(s, base);
if (isNaN(result)) {
return [0, new Error('strconv.ParseInt: parsing "' + s + '": invalid syntax')];
}
return [result, null];
}