美文网首页
终于写出了一个js渣渣代码

终于写出了一个js渣渣代码

作者: __Witness | 来源:发表于2018-12-13 14:29 被阅读0次

昨天看到大欢写了一个js工具函数---价格格式化。就是解决后台返回的产品价格数字格式各异,而前端需要展示出带逗号分离的格式数据(比如:10000000.99转化成10,000,000.99),这样用户看的时候就方便一些。

对于准备看看js的人来说,他写的东西我现在也只能看出个大概意思,但是还是不能完全看懂的,所以就决定自己写一个渣渣代码试试,就当记录一下么。


function formatPrice(box){
    if(!box)
        return 0

    if(typeof box !== 'string'){
        box = String(box);
    }

    var patten =/[1-9]([0-9]){3,}/g; //写了一个正则,能匹配出大于1000的数字的整数部分,刚好这部分也是需要处理的部分。
    var a = box.match(patten);//获取数组
    
    for (let index = 0; index < a.length; index++) {
        box = box.replace(a[index], (a[index] * 1).toLocaleString()); 
    }
     
    return box;
}

主要代码就是这点。正则也不咋会写,反正整体都是瞎jb写着玩玩而已。

input output
formatPrice(100000.9) 100,000.9
formatPrice('100000.9') 100,000.9
formatPrice('100000.9元') 100,000.9元
formatPrice('原价100000.9元') 原价100,000.9元
formatPrice('') 0
formatPrice() 0
formatPrice('原价100000.9元 优惠9999元 现价90001.9元') 原价100,000.9元 优惠9,999元 现价90,001.9元

大概就是这些了,当然只是为了记录一下自己写js玩玩而已。不做参考。

最后附上大佬写的代码

function formatPrice (price) {
  if (!price) {
    return 0
  }
  if (/,/.test(price)) {
    return price
  }
  price = String(price)
  const intPrice = price.match(/\d+/)[0]
  const HOLDER = 'HOLDER'
  const holder = price.replace(intPrice, HOLDER)
  const intPriceArr = intPrice.split('').reverse()

  let res = ''
  intPriceArr.forEach((item, index) => {
    if (index % 3 === 0 && index) {
      res = item + ',' + res
    } else {
      res = item + res
    }
  })
  return holder.replace(HOLDER, res)
}

function formatPrice (value) {
  if (!value) {
    return 0
  }
  if (/,/.test(value)) {
    return value
  }
  value = String(value)
  const reg = /\d+\.?\d*/
  const HOLDER = 'HOLDER'
  const price = value.match(reg)[0]
  const holder = value.replace(price, HOLDER)
  value = holder.replace(HOLDER, Number(price).toLocaleString())
  return value
}

相关文章

  • 终于写出了一个js渣渣代码

    昨天看到大欢写了一个js工具函数---价格格式化。就是解决后台返回的产品价格数字格式各异,而前端需要展示出带逗号分...

  • iOS Status Bar 的隐藏

    自己一个人负责项目的好处是:代码想怎么写就怎么写,然而坏处是:代码要多渣有多渣,踩坑也是必须的 iOS开发也已有一...

  • 渣男渣女五大特征

    渣男锡纸烫,渣女大波浪。这是一句流传的古语。这点出了渣男渣女的形象。 或者是这样? 渣男甜言蜜语,渣女若隐若现。 ...

  • 渣的太明显

    渣渣渣渣渣渣渣渣渣渣渣渣渣渣渣渣渣渣渣渣渣渣渣渣渣渣渣渣渣渣渣渣渣渣渣渣渣渣渣渣渣渣渣渣渣渣渣渣渣渣渣渣渣渣渣渣渣...

  • 渣渣与大神的区别

    首先我是一个渣渣,but,即便是渣渣,也应有作为渣渣的自我修,也应保持上进心养,走在通往大神的不归路上 一个渣渣想...

  • 我家酒吞吞哒生日贺文w

    *酒吞吞来到我寮的第365天 *文笔渣渣渣渣渣 *第一次写文,人物属于yys,ooc属于我 *酒我友情向,结尾微微...

  • “战五渣”是什么梗?

    看小说,出现了一个词:战五渣…~ 五渣?渣男、渣女、渣猫、渣狗、渣XX? 五渣?如果论渣,岂不是万物皆可论?岂止五...

  • 嗯。

    啊《……》渣渣渣渣渣渣……

  • 《你好,之华》:面对渣男,你的善良就是原罪

    面对渣男,你的善良就是原罪。 昨晚看了电影《你好,之华》,我的男神胡歌,饰演了一个宇宙级别的渣男张超,简直渣出了新...

  • 罗志祥的“渣”需要用九年才看得清吗?还要骗自己多久?

    罗渣渣,渣到不想为他写一个字,浪费感情…… Miss周,我还是有很多想说的。 花了九年时间才看清他的渣?不信!怕是...

网友评论

      本文标题:终于写出了一个js渣渣代码

      本文链接:https://www.haomeiwen.com/subject/tnovhqtx.html