js日常開發的方法2

 
/* 千位分隔符 */
function setNoSeparate (no) {
let num = no || 0;
let numArr = num.toString().split(‘.’);
let integers = numArr[0].replace(/\B(?=(\d{3})+)/g,’,’);      let decimals = integers + ‘.’ + numArr[1];      return numArr.length === 2 ? decimals : integers;    }    /* 取消千位分隔符 */    function noSeparate (no) {      let num = no.trim();      return num.replace(/,/gi,”);    }    /* 是否是數字 */    function isValueNumber(value) {      return (/(^-?[0-9]+.{1}\d+ ) | (^-?[1-9][0-9]*)|(?01 )/).test(value + ”);
}
/*
* @desc 轉換成數字,可以輸入負數或小數
* @param {v} [String] 要轉換的字符串
* @param {places} [Number] 默認小數後兩位
* @return {b} [Boolean] true可以包括負數,false不包括負數
* 觸發事件只能是keyup事件
* */
function formatNo(v, places = 2, b=false) {
const p = Number(places) + 1
const _ = b ? ‘^\-’ : ”;
const reg = new RegExp(‘[^\d’ + _ + ‘^\.]’, ‘g’);
v = String(v).replace(reg, ”);
if (!v) return ”;
let [ds, dl, ms, ml] = [v.indexOf(‘.’), v.lastIndexOf(‘.’), v.indexOf(‘-‘), v.lastIndexOf(‘-‘)];
while (ds !== dl) {
v = v.slice(0, dl);
ds = v.indexOf(‘.’);
dl = v.lastIndexOf(‘.’);
}
while (ms !== ml) {
v = v.slice(0, ml);
ms = v.indexOf(‘-‘);
ml = v.lastIndexOf(‘-‘);
}
v = v.includes(‘-‘) && ms ? v.slice(0, ms) : v;
v = v.startsWith(‘.’) ? 0 + v : (v[0] === ‘-’ && v[1] === ‘.’) ? ‘-0’ + v.slice(ds) : v;
return v.slice(0, v.includes(‘.’) ? ds + p : v.length);
}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章