67 lines
1.8 KiB
JavaScript
67 lines
1.8 KiB
JavaScript
// src/utils/string.util.ts
|
|
function generateKeyValStr(data, ignoreNull = true, splitChar = "&", equalChar = "=") {
|
|
const keys = Object.keys(data);
|
|
keys.sort();
|
|
let result = "";
|
|
let i = 0;
|
|
for (let key of keys) {
|
|
if (ignoreNull && !data[key]) {
|
|
return;
|
|
}
|
|
if (i++ > 0)
|
|
result += splitChar;
|
|
result += `${key}${equalChar}${data[key]}`;
|
|
}
|
|
return result;
|
|
}
|
|
function keyValToObject(str, splitChar = "&", equalChar = "=") {
|
|
let result = {};
|
|
if (!str) {
|
|
return result;
|
|
}
|
|
let arrs = str.split(splitChar);
|
|
for (let sub of arrs) {
|
|
let subArr = sub.split(equalChar);
|
|
result[subArr[0]] = subArr[1];
|
|
}
|
|
return result;
|
|
}
|
|
function isTrue(obj) {
|
|
return obj === "true" || obj === "TRUE" || obj === "True" || obj === "on" || obj === "ON" || obj === true || obj === 1 || obj === "1" || obj === "YES" || obj === "yes";
|
|
}
|
|
function isObjectId(id) {
|
|
return /^[a-fA-F0-9]{24}$/.test(id);
|
|
}
|
|
function string10to62(number) {
|
|
const chars = "0123456789abcdefghigklmnopqrstuvwxyzABCDEFGHIGKLMNOPQRSTUVWXYZ".split("");
|
|
const radix = chars.length;
|
|
let qutient = +number;
|
|
const arr = [];
|
|
do {
|
|
const mod = qutient % radix;
|
|
qutient = (qutient - mod) / radix;
|
|
arr.unshift(chars[mod]);
|
|
} while (qutient);
|
|
return arr.join("");
|
|
}
|
|
function string62to10(numberCode) {
|
|
const chars = "0123456789abcdefghigklmnopqrstuvwxyzABCDEFGHIGKLMNOPQRSTUVWXYZ";
|
|
const radix = chars.length;
|
|
numberCode = numberCode + "";
|
|
const len = numberCode.length;
|
|
let i = 0;
|
|
let originNumber = 0;
|
|
while (i < len) {
|
|
originNumber += Math.pow(radix, i++) * (chars.indexOf(numberCode.charAt(len - i)) || 0);
|
|
}
|
|
return originNumber;
|
|
}
|
|
export {
|
|
generateKeyValStr,
|
|
isObjectId,
|
|
isTrue,
|
|
keyValToObject,
|
|
string10to62,
|
|
string62to10
|
|
};
|
|
//# sourceMappingURL=string.util.js.map
|