有些小用的小方法(持续更新,欢迎补充)

1. 字符串下划线转为驼峰式

 function toCamel(str){
   if(typeof str!=="string") return str;
   return str.replace(/_(\w)/g, function (a, b) {
     return b.toUpperCase()
   })
 }

2. 获取一个数字有几位小数

复制代码
function getDecimals(num) {
  if (isNaN(num)) {
    throw("不可以有非数字的参数")
  }
  if (num=== null) {
    num= 0
  }
  let valStr = num.toString();
  let index = valStr.indexOf(".");
  if (index < 0) {
    return 0
  }
  return valStr.length - index - 1;
}
复制代码

3. 数字相加,处理精度

核心就是先相加,得到的结果是失去精度的,没关系,继续找到这所有数字中小数位数最大的,然后得到的求和数字就保留这个小数位数就好了。

注意:这里用到了上面的【 2. 获取一个数字有几位小数getDecimals ,复制时候需要连带上面的方法一起复制。

复制代码
function numberAdd(...numberList) {
  let someIsNAN = numberList.some(one => isNaN(one));
  if (someIsNAN) {
    throw("不可以有非数字的参数")
  }
  let sum = numberList.reduce((sum, one) => {
    return sum+=Number(one)
  }, 0)
  /* 获取最大小数位数 */
  let maxDecimals = Math.max(...(numberList.map(one => getDecimals(one))));
  // 根据自己的业务需求判断返回哪个
  /* 保留最大小数位数 */
  return sum.toFixed(maxDecimals);

  /* 小数位数的0会被去掉 */
  // return Number(sum.toFixed(maxDecimals))
}
复制代码

      

4. 常用正则

ps:我就是个正则大菜鸡啊,有哪位可以推荐一个正则领进门的好文章链接,感谢感谢!

// 1. 字符串匹配,匹配<lsq ...</lsq>

let exp = /<lsq[^]*?<\/lsq>/g

 

// 2. 匹配某个字符串中间的内容,匹配<lsq></lsq>中间的内容

let exp = /(?<=<lsq>).*(?=<\/lsq>)/

 

posted @   蛙仔  阅读(31)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· DeepSeek 开源周回顾「GitHub 热点速览」
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
点击右上角即可分享
微信分享提示