/**
*
* @description 现金额转大写
* @param {Number} n
* @return {String}
*/letdigitUppercase=function(n){var fraction =['角','分'];var digit =['零','壹','贰','叁','肆','伍','陆','柒','捌','玖'];var unit =[['元','万','亿'],['','拾','佰','仟']];var head = n <0?'欠':'';
n = Math.abs(n);var s ='';for(var i =0; i < fraction.length; i++){
s +=(digit[Math.floor(n *10* Math.pow(10, i))%10]+ fraction[i]).replace(/零./,'');}
s = s ||'整';
n = Math.floor(n);for(var i =0; i < unit[0].length && n >0; i++){var p ='';for(var j =0; j < unit[1].length && n >0; j++){
p = digit[n %10]+ unit[1][j]+ p;
n = Math.floor(n /10);}
s = p.replace(/(零.)*零$/,'').replace(/^$/,'零')+ unit[0][i]+ s;}return head + s.replace(/(零.)*零元/,'元').replace(/(零.)+/g,'零').replace(/^整$/,'零元整');};
验证是否是微信环境
isWechat(){let ua = window.navigator.userAgent.toLowerCase();return ua.match(/MicroMessenger/i)=="micromessenger";}
验证是否是钉钉环境
isDingTalk(){let ua = window.navigator.userAgent.toLowerCase();return ua.match(/DingTalk/i)=="dingtalk";}
保留有效数字
let num =3.141592653;
num.toFixed()// 3
num.toFixed(1)// 3.1
num.toFixed(2)// 3.14
num.toFixed(3)// 3.142
判断ios
// 是IOS返回true,不是返回falsefunctionisIOS(){var u = navigator.userAgent;var isiOS =!!u.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/);return isiOS;}
var data={a:1,b:2,c:3,4:''}for(var key in data ){if( data[key]===''){delete data[key]}}
console.log(data);
input输入框保留2位小数
value=>{if(typeof value ==='string'){return!isNaN(Number(value))? value.replace(/^(\-)*(\d+)\.(\d).*$/,'$1$2.$3'):'';}elseif(typeof value ==='number'){return!isNaN(value)?String(value).replace(/^(\-)*(\d+)\.(\d).*$/,'$1$2.$3'):'';}else{return'';}};
antd InputNumber限制输入正整数
// 方法1:<InputNumber min={0} max={9999} precision={0}/>// 方法2:constlimitNumber=(value: string |undefined)=>{const reg =/^(0+)|[^\d]+/g;if(typeof value ==='string'){return!isNaN(Number(value))? value.replace(reg,'$1'):'';}elseif(typeof value ==='number'){return!isNaN(value)?String(value).replace(reg,'$1'):'';}else{return'';}}<InputNumber min={'0'} max={'10000'} formatter={limitNumber} parser={limitNumber}/>
替换或添加url参数
// 可以在小程序中使用/**
*
* @description 替换或添加url参数
* @param {string} base 链接
* @param {string} find 替换或增加的key
* @param {string|number} value 替换或增加的value
* @return {String}
*/changeUrl(base, find, value){var offset = base.indexOf(find);var index;var rr ='';if(offset <0){if(base.indexOf('?')<0){
base +='?';}else{
base +='&';}
base += find +'='+ value;}else{let left = base.substr(0, offset);let right = base.substr(offset);
index = right.indexOf('&');if(index >=0){
rr = right.substr(index);}
base = left + find +"="+ value + rr;}return base;}// 常用的替换参数的方法(小程序中不适用,eval方法不可用)functionchangeUrlArg(url, arg, val){var pattern = arg+'=([^&]*)';var replaceText = arg+'='+val;return url.match(pattern)? url.replace(eval('/('+ arg+'=)([^&]*)/gi'), replaceText):(url.match('[\?]')? url+'&'+replaceText : url+'?'+replaceText);}
获取时间区间内所有月份
functiongetMonthBetween(start, end){//返回月份的数组 如 ['2020-07','2020-08']var result =[];var s = start.split("-");var e = end.split("-");var min =newDate();var max =newDate();
min.setFullYear(s[0], s[1]*1-1,1);//开始日期//console.log(moment(min).format('YYYY-MM-DD'));
max.setFullYear(e[0], e[1]*1-1,1);//结束日期//console.log(moment(max).format('YYYY-MM-DD'));var curr = min;while(curr <= max){//console.log(moment(curr).format('YYYY-MM-DD'));var month = curr.getMonth();
console.log(month +1);//var str = curr.getFullYear() + "-" + (month);//var s = curr.getFullYear() + "-0";//if (str == s) {//str = curr.getFullYear() + "-1";// }
result.push(curr.getFullYear()+"-"+PrefixInteger((month +1),2));
curr.setMonth(month +1);}return result;}