正则相关应用

匿名 (未验证) 提交于 2019-12-03 00:15:02
/**  * 重写js native toFixed 方法  * @param d  * @returns { string | number }  */ export function toFixed(d) {   let s = this + ''   if (!d) d = 0   d = parseInt(d)   if (s.indexOf('.') == -1) s += '.'   s += new Array(d + 1).join('0')   if (new RegExp('^(-|\\+)?(\\d+(\\.\\d{0,' + (d + 1) + '})?)\\d*$').test(s)) {     s = '0' + RegExp.$2     let pm = RegExp.$1     let a = RegExp.$3.length     let b = true     if (a == d + 2) {       a = s.match(/\d/g)       if ((pm !== '-' && parseInt(a[a.length - 1]) > 4) || (pm === '-' && parseInt(a[a.length - 1]) > 5)) {         for (var i = a.length - 2; i >= 0; i--) {           a[i] = parseInt(a[i]) + 1           if (a[i] == 10) {             a[i] = 0             b = i != 1           } else break         }       }       s = a.join('').replace(new RegExp('(\\d+)(\\d{' + d + '})\\d$'), '$1.$2')     }     if (b) s = s.substr(1)     return (pm + s).replace(/\.$/, '')   }   return this + '' } 

  

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!