Galerie und tage
This commit is contained in:
21
node_modules/strnum/LICENSE
generated
vendored
21
node_modules/strnum/LICENSE
generated
vendored
@@ -1,21 +0,0 @@
|
||||
MIT License
|
||||
|
||||
Copyright (c) 2021 Natural Intelligence
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all
|
||||
copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
SOFTWARE.
|
||||
79
node_modules/strnum/README.md
generated
vendored
79
node_modules/strnum/README.md
generated
vendored
@@ -1,79 +0,0 @@
|
||||
# strnum
|
||||
Parse string into Number based on configuration
|
||||
|
||||
```bash
|
||||
npm install strnum
|
||||
```
|
||||
```js
|
||||
const toNumber = require("strnum");
|
||||
|
||||
toNumber(undefined) // undefined
|
||||
toNumber(null)) //null
|
||||
toNumber("")) // ""
|
||||
toNumber("string"); //"string")
|
||||
toNumber("12,12"); //"12,12")
|
||||
toNumber("12 12"); //"12 12")
|
||||
toNumber("12-12"); //"12-12")
|
||||
toNumber("12.12.12"); //"12.12.12")
|
||||
toNumber("0x2f"); //47)
|
||||
toNumber("-0x2f"); //-47)
|
||||
toNumber("0x2f", { hex : true}); //47)
|
||||
toNumber("-0x2f", { hex : true}); //-47)
|
||||
toNumber("0x2f", { hex : false}); //"0x2f")
|
||||
toNumber("-0x2f", { hex : false}); //"-0x2f")
|
||||
toNumber("06"); //6)
|
||||
toNumber("06", { leadingZeros : true}); //6)
|
||||
toNumber("06", { leadingZeros : false}); //"06")
|
||||
|
||||
toNumber("006"); //6)
|
||||
toNumber("006", { leadingZeros : true}); //6)
|
||||
toNumber("006", { leadingZeros : false}); //"006")
|
||||
toNumber("0.0"); //0)
|
||||
toNumber("00.00"); //0)
|
||||
toNumber("0.06"); //0.06)
|
||||
toNumber("00.6"); //0.6)
|
||||
toNumber(".006"); //0.006)
|
||||
toNumber("6.0"); //6)
|
||||
toNumber("06.0"); //6)
|
||||
|
||||
toNumber("0.0", { leadingZeros : false}); //0)
|
||||
toNumber("00.00", { leadingZeros : false}); //"00.00")
|
||||
toNumber("0.06", { leadingZeros : false}); //0.06)
|
||||
toNumber("00.6", { leadingZeros : false}); //"00.6")
|
||||
toNumber(".006", { leadingZeros : false}); //0.006)
|
||||
toNumber("6.0" , { leadingZeros : false}); //6)
|
||||
toNumber("06.0" , { leadingZeros : false}); //"06.0")
|
||||
toNumber("-06"); //-6)
|
||||
toNumber("-06", { leadingZeros : true}); //-6)
|
||||
toNumber("-06", { leadingZeros : false}); //"-06")
|
||||
|
||||
toNumber("-0.0"); //-0)
|
||||
toNumber("-00.00"); //-0)
|
||||
toNumber("-0.06"); //-0.06)
|
||||
toNumber("-00.6"); //-0.6)
|
||||
toNumber("-.006"); //-0.006)
|
||||
toNumber("-6.0"); //-6)
|
||||
toNumber("-06.0"); //-6)
|
||||
|
||||
toNumber("-0.0" , { leadingZeros : false}); //-0)
|
||||
toNumber("-00.00", { leadingZeros : false}); //"-00.00")
|
||||
toNumber("-0.06", { leadingZeros : false}); //-0.06)
|
||||
toNumber("-00.6", { leadingZeros : false}); //"-00.6")
|
||||
toNumber("-.006", {leadingZeros : false}); //-0.006)
|
||||
toNumber("-6.0" , { leadingZeros : false}); //-6)
|
||||
toNumber("-06.0" , { leadingZeros : false}); //"-06.0")
|
||||
toNumber("420926189200190257681175017717") ; //4.209261892001902e+29)
|
||||
toNumber("000000000000000000000000017717" , { leadingZeros : false}); //"000000000000000000000000017717")
|
||||
toNumber("000000000000000000000000017717" , { leadingZeros : true}); //17717)
|
||||
toNumber("01.0e2" , { leadingZeros : false}); //"01.0e2")
|
||||
toNumber("-01.0e2" , { leadingZeros : false}); //"-01.0e2")
|
||||
toNumber("01.0e2") ; //100)
|
||||
toNumber("-01.0e2") ; //-100)
|
||||
toNumber("1.0e2") ; //100)
|
||||
|
||||
toNumber("-1.0e2") ; //-100)
|
||||
toNumber("1.0e-2"); //0.01)
|
||||
|
||||
toNumber("+1212121212"); // 1212121212
|
||||
toNumber("+1212121212", { skipLike: /\+[0-9]{10}/} )); //"+1212121212"
|
||||
```
|
||||
21
node_modules/strnum/package.json
generated
vendored
21
node_modules/strnum/package.json
generated
vendored
@@ -1,21 +0,0 @@
|
||||
{
|
||||
"name": "strnum",
|
||||
"version": "1.0.4",
|
||||
"description": "Parse String to Number based on configuration",
|
||||
"main": "strnum.js",
|
||||
"scripts": {
|
||||
"test": "jasmine strnum.test.js"
|
||||
},
|
||||
"keywords": [
|
||||
"string",
|
||||
"number",
|
||||
"parse",
|
||||
"convert"
|
||||
],
|
||||
"repository": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/NaturalIntelligence/strnum"
|
||||
},
|
||||
"author": "Amit Gupta (https://amitkumargupta.work/)",
|
||||
"license": "MIT"
|
||||
}
|
||||
50
node_modules/strnum/strnum.js
generated
vendored
50
node_modules/strnum/strnum.js
generated
vendored
@@ -1,50 +0,0 @@
|
||||
const hexRegex = /^[-+]?0x[a-fA-F0-9]+$/;
|
||||
const numRegex = /^([\-\+])?(0*)(\.[0-9]+([eE]\-?[0-9]+)?|[0-9]+(\.[0-9]+([eE]\-?[0-9]+)?)?)$/;
|
||||
// const octRegex = /0x[a-z0-9]+/;
|
||||
// const binRegex = /0x[a-z0-9]+/;
|
||||
|
||||
const consider = {
|
||||
hex : true,
|
||||
leadingZeros: true,
|
||||
decimalPoint: "\.",
|
||||
//skipLike: /regex/
|
||||
};
|
||||
|
||||
function toNumber(str, options = {}){
|
||||
// const options = Object.assign({}, consider);
|
||||
// if(opt.leadingZeros === false){
|
||||
// options.leadingZeros = false;
|
||||
// }else if(opt.hex === false){
|
||||
// options.hex = false;
|
||||
// }
|
||||
|
||||
options = Object.assign({}, consider, options );
|
||||
if(!str || typeof str !== "string" ) return str;
|
||||
|
||||
let trimmedStr = str.trim();
|
||||
|
||||
if(options.skipLike !== undefined && options.skipLike.test(trimmedStr)) return str;
|
||||
else if (options.hex && hexRegex.test(trimmedStr)) {
|
||||
return Number.parseInt(trimmedStr, 16);
|
||||
// } else if (options.parseOct && octRegex.test(str)) {
|
||||
// return Number.parseInt(val, 8);
|
||||
// }else if (options.parseBin && binRegex.test(str)) {
|
||||
// return Number.parseInt(val, 2);
|
||||
}else{
|
||||
//separate negative sign, leading zeros, and rest number
|
||||
const match = numRegex.exec(trimmedStr);
|
||||
if(match){
|
||||
const negative = match[1];
|
||||
const leadingZeros = match[2];
|
||||
const num = match[3]; //complete num
|
||||
const eNotation = match[4] || match[6];
|
||||
if(leadingZeros.length === 1 && num[0] === ".") return Number(str);
|
||||
else if(!options.leadingZeros && leadingZeros.length > 0) return str;
|
||||
else return Number(trimmedStr);
|
||||
}else{ //non-numeric string
|
||||
return str;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
module.exports = toNumber
|
||||
123
node_modules/strnum/strnum.test.js
generated
vendored
123
node_modules/strnum/strnum.test.js
generated
vendored
@@ -1,123 +0,0 @@
|
||||
const toNumber = require("./strnum");
|
||||
|
||||
describe("Should convert all the valid numeric strings to number", () => {
|
||||
it("should return undefined, null, empty string, or non-numeric as it is", () => {
|
||||
expect(toNumber(undefined)).not.toBeDefined();
|
||||
expect(toNumber(null)).toEqual(null);
|
||||
expect(toNumber("")).toEqual("");
|
||||
expect(toNumber("string")).toEqual("string");
|
||||
});
|
||||
it("should not parse number with spaces or comma", () => {
|
||||
expect(toNumber("12,12")).toEqual("12,12");
|
||||
expect(toNumber("12 12")).toEqual("12 12");
|
||||
expect(toNumber("12-12")).toEqual("12-12");
|
||||
expect(toNumber("12.12.12")).toEqual("12.12.12");
|
||||
})
|
||||
it("should consider + sign", () => {
|
||||
expect(toNumber("+12")).toEqual(12);
|
||||
expect(toNumber("12+12")).toEqual("12+12");
|
||||
expect(toNumber("1212+")).toEqual("1212+");
|
||||
})
|
||||
it("should parse hexadecimal values", () => {
|
||||
expect(toNumber("0x2f")).toEqual(47);
|
||||
expect(toNumber("-0x2f")).toEqual(-47);
|
||||
expect(toNumber("0x2f", { hex : true})).toEqual(47);
|
||||
expect(toNumber("-0x2f", { hex : true})).toEqual(-47);
|
||||
expect(toNumber("0x2f", { hex : false})).toEqual("0x2f");
|
||||
expect(toNumber("-0x2f", { hex : false})).toEqual("-0x2f");
|
||||
})
|
||||
it("should not parse strings with 0x embedded", () => {
|
||||
expect(toNumber("0xzz")).toEqual("0xzz");
|
||||
expect(toNumber("iweraf0x123qwerqwer")).toEqual("iweraf0x123qwerqwer");
|
||||
expect(toNumber("1230x55")).toEqual("1230x55");
|
||||
expect(toNumber("JVBERi0xLjMNCiXi48")).toEqual("JVBERi0xLjMNCiXi48");
|
||||
})
|
||||
it("leading zeros", () => {
|
||||
expect(toNumber("06")).toEqual(6);
|
||||
expect(toNumber("06", { leadingZeros : true})).toEqual(6);
|
||||
expect(toNumber("06", { leadingZeros : false})).toEqual("06");
|
||||
|
||||
expect(toNumber("006")).toEqual(6);
|
||||
expect(toNumber("006", { leadingZeros : true})).toEqual(6);
|
||||
expect(toNumber("006", { leadingZeros : false})).toEqual("006");
|
||||
})
|
||||
it("floating point and leading zeros", () => {
|
||||
expect(toNumber("0.0")).toEqual(0);
|
||||
expect(toNumber("00.00")).toEqual(0);
|
||||
expect(toNumber("0.06")).toEqual(0.06);
|
||||
expect(toNumber("00.6")).toEqual(0.6);
|
||||
expect(toNumber(".006")).toEqual(0.006);
|
||||
expect(toNumber("6.0")).toEqual(6);
|
||||
expect(toNumber("06.0")).toEqual(6);
|
||||
|
||||
expect(toNumber("0.0", { leadingZeros : false})).toEqual(0);
|
||||
expect(toNumber("00.00", { leadingZeros : false})).toEqual("00.00");
|
||||
expect(toNumber("0.06", { leadingZeros : false})).toEqual(0.06);
|
||||
expect(toNumber("00.6", { leadingZeros : false})).toEqual("00.6");
|
||||
expect(toNumber(".006", { leadingZeros : false})).toEqual(0.006);
|
||||
expect(toNumber("6.0" , { leadingZeros : false})).toEqual(6);
|
||||
expect(toNumber("06.0" , { leadingZeros : false})).toEqual("06.0");
|
||||
})
|
||||
it("negative number leading zeros", () => {
|
||||
expect(toNumber("-06")).toEqual(-6);
|
||||
expect(toNumber("-06", { leadingZeros : true})).toEqual(-6);
|
||||
expect(toNumber("-06", { leadingZeros : false})).toEqual("-06");
|
||||
|
||||
expect(toNumber("-0.0")).toEqual(-0);
|
||||
expect(toNumber("-00.00")).toEqual(-0);
|
||||
expect(toNumber("-0.06")).toEqual(-0.06);
|
||||
expect(toNumber("-00.6")).toEqual(-0.6);
|
||||
expect(toNumber("-.006")).toEqual(-0.006);
|
||||
expect(toNumber("-6.0")).toEqual(-6);
|
||||
expect(toNumber("-06.0")).toEqual(-6);
|
||||
|
||||
expect(toNumber("-0.0" , { leadingZeros : false})).toEqual(-0);
|
||||
expect(toNumber("-00.00", { leadingZeros : false})).toEqual("-00.00");
|
||||
expect(toNumber("-0.06", { leadingZeros : false})).toEqual(-0.06);
|
||||
expect(toNumber("-00.6", { leadingZeros : false})).toEqual("-00.6");
|
||||
expect(toNumber("-.006", {leadingZeros : false})).toEqual(-0.006);
|
||||
expect(toNumber("-6.0" , { leadingZeros : false})).toEqual(-6);
|
||||
expect(toNumber("-06.0" , { leadingZeros : false})).toEqual("-06.0");
|
||||
})
|
||||
it("long number", () => {
|
||||
expect(toNumber("420926189200190257681175017717") ).toEqual(4.209261892001902e+29);
|
||||
expect(toNumber("000000000000000000000000017717" , { leadingZeros : false})).toEqual("000000000000000000000000017717");
|
||||
expect(toNumber("000000000000000000000000017717" , { leadingZeros : true})).toEqual(17717);
|
||||
});
|
||||
it("scientific notation", () => {
|
||||
expect(toNumber("01.0e2" , { leadingZeros : false})).toEqual("01.0e2");
|
||||
expect(toNumber("-01.0e2" , { leadingZeros : false})).toEqual("-01.0e2");
|
||||
expect(toNumber("01.0e2") ).toEqual(100);
|
||||
expect(toNumber("-01.0e2") ).toEqual(-100);
|
||||
expect(toNumber("1.0e2") ).toEqual(100);
|
||||
|
||||
expect(toNumber("-1.0e2") ).toEqual(-100);
|
||||
expect(toNumber("1.0e-2")).toEqual(0.01);
|
||||
});
|
||||
|
||||
it("scientific notation with upper E", () => {
|
||||
expect(toNumber("01.0E2" , { leadingZeros : false})).toEqual("01.0E2");
|
||||
expect(toNumber("-01.0E2" , { leadingZeros : false})).toEqual("-01.0E2");
|
||||
expect(toNumber("01.0E2") ).toEqual(100);
|
||||
expect(toNumber("-01.0E2") ).toEqual(-100);
|
||||
expect(toNumber("1.0E2") ).toEqual(100);
|
||||
|
||||
expect(toNumber("-1.0E2") ).toEqual(-100);
|
||||
expect(toNumber("1.0E-2")).toEqual(0.01);
|
||||
});
|
||||
|
||||
it("should skip matching pattern", () => {
|
||||
expect(toNumber("+12", { skipLike: /\+[0-9]{10}/} )).toEqual(12);
|
||||
expect(toNumber("12+12", { skipLike: /\+[0-9]{10}/} )).toEqual("12+12");
|
||||
expect(toNumber("12+1212121212", { skipLike: /\+[0-9]{10}/} )).toEqual("12+1212121212");
|
||||
expect(toNumber("+1212121212") ).toEqual(1212121212);
|
||||
expect(toNumber("+1212121212", { skipLike: /\+[0-9]{10}/} )).toEqual("+1212121212");
|
||||
})
|
||||
it("should not change string if not number", () => {
|
||||
expect(toNumber("+12 12")).toEqual("+12 12");
|
||||
expect(toNumber(" +12 12 ")).toEqual(" +12 12 ");
|
||||
})
|
||||
it("should ignore sorrounded spaces ", () => {
|
||||
expect(toNumber(" +1212 ")).toEqual(1212);
|
||||
})
|
||||
});
|
||||
Reference in New Issue
Block a user