Comparing version 2.0.0 to 2.0.1
**2.0.1 / 2025-02-20** | ||
- fix: handle only zeros | ||
- fix: return original string when NaN | ||
**2.0.0 / 2025-02-20** | ||
@@ -3,0 +7,0 @@ - Migrating to ESM modules. No functional change |
{ | ||
"name": "strnum", | ||
"version": "2.0.0", | ||
"version": "2.0.1", | ||
"description": "Parse String to Number based on configuration", | ||
@@ -5,0 +5,0 @@ "type": "module", |
@@ -19,3 +19,4 @@ const hexRegex = /^[-+]?0x[a-fA-F0-9]+$/; | ||
if(!str || typeof str !== "string" ) return str; | ||
else if(str==="0") return 0; | ||
let trimmedStr = str.trim(); | ||
@@ -37,8 +38,8 @@ | ||
}else{ | ||
return trimmedStr; | ||
return str; | ||
} | ||
} | ||
return options.eNotation ? Number(trimmedStr) : trimmedStr; | ||
return options.eNotation ? Number(trimmedStr) : str; | ||
}else{ | ||
return trimmedStr; | ||
return str; | ||
} | ||
@@ -59,2 +60,4 @@ // }else if (options.parseBin && binRegex.test(str)) { | ||
else if(!options.leadingZeros && leadingZeros.length > 0 && !sign && trimmedStr[1] !== ".") return str; //0123 | ||
else if(options.leadingZeros && leadingZeros===str) return 0; //00 | ||
else{//no leading zeros or leading zeros are allowed | ||
@@ -61,0 +64,0 @@ const num = Number(trimmedStr); |
@@ -37,2 +37,10 @@ import toNumber from "./strnum.js"; | ||
it("leading zeros", () => { | ||
expect(toNumber("0")).toEqual(0); | ||
expect(toNumber("00")).toEqual(0); | ||
expect(toNumber("00.0")).toEqual(0); | ||
expect(toNumber("0",{ leadingZeros : false})).toEqual(0); | ||
expect(toNumber("00",{ leadingZeros : false})).toEqual("00"); | ||
expect(toNumber("00.0",{ leadingZeros : false})).toEqual("00.0"); | ||
expect(toNumber("06")).toEqual(6); | ||
@@ -55,2 +63,4 @@ expect(toNumber("06", { leadingZeros : true})).toEqual(6); | ||
expect(toNumber("0.21.") ).toEqual("0.21."); | ||
}); | ||
it("floating point and leading zeros", () => { | ||
expect(toNumber("0.")).toEqual(0); | ||
@@ -60,4 +70,2 @@ expect(toNumber("+0.")).toEqual(0); | ||
expect(toNumber("1.") ).toEqual(1); | ||
}); | ||
it("floating point and leading zeros", () => { | ||
expect(toNumber("00.00")).toEqual(0); | ||
@@ -64,0 +72,0 @@ expect(toNumber("0.06")).toEqual(0.06); |
18661
267