uv-ui
Version:
基于vue3的移动端组件库
51 lines (50 loc) • 1.33 kB
JavaScript
import { isDef as c } from "./type.js";
function o(t) {
const r = [], i = /\[(\d+)\]/g;
let e = t, n;
for (; n = i.exec(t); )
r.push(n[1]);
return r.length && (e = e.substring(0, e.indexOf(r[0]) - 1)), [e, ...r];
}
function g(t, r, i) {
if (!c(t))
return i;
const e = r.split(".").map(o).flat();
let n = t;
for (let s = 0; s < e.length; s++) {
const f = e[s];
if (c(n[f]))
n = n[f];
else
return i;
}
return n;
}
function u(t) {
return Array.isArray(t) ? t : t.replace(/\[/g, ".").replace(/\]/g, "").split(".");
}
function x(t, r, i) {
return typeof t != "object" || u(r).reduce((e, n, s, f) => s === f.length - 1 ? (e[n] = i, null) : (n in e || (e[n] = /^[0-9]{1,}$/.test(f[s + 1]) ? [] : {}), e[n]), t), t;
}
const m = (t, r, i) => ({
get value() {
return g(t, r, i);
},
set value(e) {
x(t, r, e);
}
}), l = (t, r, i) => {
const e = t.indexOf(r);
return e === -1 ? t : r === "-" && e !== 0 ? t.slice(0, e) : t.slice(0, e + 1) + t.slice(e).replace(i, "");
}, y = (t, r = !0, i = !0) => {
r ? t = l(t, ".", /\./g) : t = t.split(".")[0], i ? t = l(t, "-", /-/g) : t = t.replace(/-/, "");
const e = r ? /[^-0-9.]/g : /[^-0-9]/g;
return t.replace(e, "");
};
export {
y as formatNumber,
g as get,
m as getProp,
x as set,
l as trimExtraChar
};