• 数字位数不够,进行前补零的JS实现方案


    /**
    * 自定义函数名:PrefixZero
    * @param num: 被操作数
    * @param n: 固定的总位数
    */
    function PrefixZero(num, n) {
        return (Array(n).join(0) + num).slice(-n);
    }

      使用原理下::

    • Array(5) => 创建了一个长度为5的空数组
      console.log(Array(5));// [empty × 5]
    • Array(5).join(0) => 用0拼接将数组转换成字符串
      console.log(Array(5).join(0));// 0000
    • Array(5).join(0)+91 => 通过+,实现字符串的拼接
      console.log(Array(5).join(0)+91);// 000091
    • (Array(5).join(0) + 91).slice(-5) => slice(startIndex,endIndex)方法,用于截取
      参数说明:
      参数是起始位置,含头不含尾,
      只有一个参数时,表示从该起始位置一直截取到最后。
      参数值为负数时,表示从后往前数,如最后一位,索引是-1
    • PS:不知为何,引入es6的Api不行----------‘X’.padStart(5,ab),使用规则如下:                                                                                                                   

      ES2017 引入了字符串补全长度的功能。如果某个字符串不够指定长度,会在头部或尾部补全。padStart()用于头部补全,padEnd()用于尾部补全。

      'x'.padStart(5, 'ab') // 'ababx'
      'x'.padStart(4, 'ab') // 'abax'
      
      'x'.padEnd(5, 'ab') // 'xabab'
      'x'.padEnd(4, 'ab') // 'xaba'
      

      上面代码中,padStart()padEnd()一共接受两个参数,第一个参数是字符串补全生效的最大长度,第二个参数是用来补全的字符串。

      如果原字符串的长度,等于或大于最大长度,则字符串补全不生效,返回原字符串。

      'xxx'.padStart(2, 'ab') // 'xxx'
      'xxx'.padEnd(2, 'ab') // 'xxx'
      

      如果用来补全的字符串与原字符串,两者的长度之和超过了最大长度,则会截去超出位数的补全字符串。

      'abc'.padStart(10, '0123456789')
      // '0123456abc'
      

      如果省略第二个参数,默认使用空格补全长度。

      'x'.padStart(4) // '   x'
      'x'.padEnd(4) // 'x   '
      

      padStart()的常见用途是为数值补全指定位数。下面代码生成 10 位的数值字符串。

      '1'.padStart(10, '0') // "0000000001"
      '12'.padStart(10, '0') // "0000000012"
      '123456'.padStart(10, '0') // "0000123456"
      

      另一个用途是提示字符串格式。

      '12'.padStart(10, 'YYYY-MM-DD') // "YYYY-MM-12"
      '09-12'.padStart(10, 'YYYY-MM-DD') // "YYYY-09-12"
    • 不知哪位大佬知道,希望可以不吝赐教
  • 相关阅读:
    在Exchange 2013中重置用户密码
    在exchange邮箱服务器上启用反垃圾邮件功能
    EMC队列 发件人为空 From Address: <>
    zabbix删除历史记录
    ESXi 6.7 CVE-2018-3646警告的处理
    CentOS安装nmap端口查看工具
    webpack学习
    vscode 点滴
    chrome点滴
    前端资料汇总
  • 原文地址:https://www.cnblogs.com/linm/p/13361843.html
Copyright © 2020-2023  润新知