如果可以实现记得点赞分享,谢谢老铁~
1.移除金额逗号分隔符
const removeMoneyComma = function ( money ) {
return money. replace ( / , / g , "" ) ;
} ;
2.格式化金额数字,金额逗号分隔符
const formatMoneyNumber = function ( moneyNum ) {
if ( typeof ( moneyNum== "number" ) ) {
moneyNum= moneyNum+ "" ;
}
var moneyNum = moneyNum. replace ( / , / g , "" ) ;
return / \. / . test ( moneyNum) ? moneyNum. replace ( / (\d{1,3})(?=(\d{3})+\.) / g , "$1," ) : moneyNum. replace ( / (\d{1,3})(?=(\d{3})+\b) / g , "$1," ) ;
} ;
3.格式化金额数字,小数部分和整数部分用不同的样式
const formatNumber = function ( options ) {
var money= options. money< 0 || typeof options. money== 'undefined' ? 0 : options. money;
var class1= typeof options. class1== 'undefined' ? "f4" : options. class1;
var class2= typeof options. class1== 'undefined' ? "f2" : options. class2;
var formatMoney= string. formatMoneyNumber ( money) ;
var split= formatMoney. split ( "." ) ;
floor= split[ 0 ] ;
decimal= split[ 1 ] ;
var html= "<span class=\"" + class1+ "\">" + floor+ ".</span>" ;
html+= "<span class=\"" + class2+ "\">" + decimal+ "</span>" ;
return html;
} ;
4.number类型转换成 有“+” “-” “%” 的形式
const toPercentage = function ( str ) {
if ( str== null ) {
return "+0.00%"
}
str = str + ""
var arr = str. split ( "." ) ;
if ( arr[ 1 ] ) {
if ( arr[ 1 ] . length == 1 ) {
str = str + "0"
} else if ( arr[ 1 ] . length > 2 ) {
str = arr[ 0 ] + "." + arr[ 1 ] . slice ( 0 , 2 )
}
} else {
str = str + ".00"
}
if ( str. indexOf ( "-" ) == - 1 ) {
if ( str. indexOf ( "+" ) == - 1 ) {
str = "+" + str
}
}
return str + "%"
}
5.number类型转换成 带有固定小数位的字符串
const toRoundDown = function ( number, scaleAmount ) {
if ( number== null ) {
return "--.--"
}
var numStr = number + "" ;
if ( numStr. indexOf ( "e" ) != - 1 ) {
numStr = scienceNum ( number)
number = numStr
}
var index = ( numStr) . indexOf ( "." ) ;
if ( index == - 1 ) {
if ( scaleAmount> 0 ) {
var endStr = "."
for ( var i = 0 ; i< scaleAmount; i++ ) {
endStr += "0"
}
} else {
var endStr = ""
}
return number + endStr
} else {
var endStr = ( number+ "" ) . slice ( index+ 1 )
var startStr = ( number+ "" ) . slice ( 0 , index)
if ( scaleAmount> 0 ) {
if ( endStr. length> scaleAmount) {
return startStr+ "." + endStr. slice ( 0 , scaleAmount)
} else {
var len = scaleAmount - endStr. length;
var endStr = ""
if ( len != 0 ) {
for ( var j = 0 ; j< len; j++ ) {
endStr += "0"
}
}
return number + endStr
}
} else if ( scaleAmount == 0 ) {
if ( number< 0 ) {
return ( - 1 * Math. floor ( - 1 * number) ) + ""
} else {
return Math. floor ( number) + ""
}
}
}
}
6.科学计数法转换
const scienceNum = ( value ) => {
if ( isEmpty ( value) ) {
return value;
}
value = value. toString ( ) ;
if ( value. indexOf ( "e" ) > 0 || value. indexOf ( "E" ) > 0 ) {
var ePart;
var scalePart;
var valueList;
if ( value. indexOf ( "e" ) > 0 ) {
valueList = value. split ( "e" ) ;
} else if ( value. indexOf ( "E" ) > 0 ) {
valueList = value. split ( "E" ) ;
}
if ( valueList. length < 2 ) {
return value;
}
ePart = valueList[ 0 ] ;
scalePart = valueList[ 1 ] ;
var result;
if ( ePart. indexOf ( "." ) > 0 ) {
var ePartList = ePart. split ( "." ) ;
var fLength = ePartList[ 0 ] . length;
var sLength = ePartList[ 1 ] . length;
if ( scalePart. indexOf ( "-" ) >= 0 ) {
if ( ePartList[ 0 ] . indexOf ( "-" ) >= 0 ) {
ePartList[ 0 ] = ePartList[ 0 ] . replace ( "-" , "" ) ;
result = "-0." ;
} else {
result = "0." ;
ePartList[ 0 ] = ePartList[ 0 ] . replace ( "+" , "" ) ;
}
var scalePartList = scalePart. split ( "-" ) ;
for ( var i = 0 ; i < scalePartList[ 1 ] - 1 ; i++ ) {
result = result + "0" ;
}
result = result + ePartList[ 0 ] + ePartList[ 1 ] ;
return result;
} else {
var scalePartList;
if ( scalePart. indexOf ( "+" ) >= 0 ) {
scalePartList = scalePart. split ( "+" ) ;
scalePartList = scalePartList[ 1 ] ;
} else {
scalePartList = scalePart;
}
ePartList[ 0 ] = ePartList[ 0 ] . replace ( "+" , "" ) ;
result = ePartList[ 0 ] . toString ( ) + ePartList[ 1 ] . toString ( ) ;
var leftLength = scalePartList - sLength;
if ( leftLength > 0 ) {
for ( var j = 0 ; j < leftLength; j++ ) {
result = result + "0" ;
}
}
return result;
}
} else {
if ( scalePart. indexOf ( "-" ) >= 0 ) {
if ( ePart. indexOf ( "-" ) >= 0 ) {
ePart = ePart. replace ( "-" , "" ) ;
result = "-0." ;
} else {
ePart = ePart. replace ( "+" , "" ) ;
result = "0." ;
}
var scalePartList = scalePart. split ( "-" ) ;
for ( var i = 0 ; i < scalePartList[ 1 ] - 1 ; i++ ) {
result = result + "0" ;
}
result = result + ePart;
return result;
} else {
var scalePartList;
if ( scalePart. indexOf ( "+" ) >= 0 ) {
scalePartList = scalePart. split ( "+" ) ;
scalePartList = scalePartList[ 1 ] ;
} else {
scalePartList = scalePart;
}
ePart = ePart. replace ( "+" , "" ) ;
result = ePart. toString ( ) ;
var leftLength = scalePartList;
if ( leftLength > 0 ) {
for ( var j = 0 ; j < leftLength; j++ ) {
result = result + "0" ;
}
}
return result;
}
}
}
return value;
}
function isEmpty ( value ) {
return 'undefined' === typeof value || null === value || "" === value || "null" === value;
}
7.解决js 浮点数 加法 bug
const floatAdd = function ( arg1, arg2 ) {
var r1, r2, m, c;
try {
r1 = arg1. toString ( ) . split ( "." ) [ 1 ] . length;
}
catch ( e) {
r1 = 0 ;
}
try {
r2 = arg2. toString ( ) . split ( "." ) [ 1 ] . length;
}
catch ( e) {
r2 = 0 ;
}
c = Math. abs ( r1 - r2) ;
m = Math. pow ( 10 , Math. max ( r1, r2) ) ;
if ( c > 0 ) {
var cm = Math. pow ( 10 , c) ;
if ( r1 > r2) {
arg1 = Number ( arg1. toString ( ) . replace ( "." , "" ) ) ;
arg2 = Number ( arg2. toString ( ) . replace ( "." , "" ) ) * cm;
} else {
arg1 = Number ( arg1. toString ( ) . replace ( "." , "" ) ) * cm;
arg2 = Number ( arg2. toString ( ) . replace ( "." , "" ) ) ;
}
} else {
arg1 = Number ( arg1. toString ( ) . replace ( "." , "" ) ) ;
arg2 = Number ( arg2. toString ( ) . replace ( "." , "" ) ) ;
}
return ( arg1 + arg2) / m;
}
8.解决js 浮点数 减法 bug
const floatSub = function ( arg1, arg2 ) {
var r1, r2, m, n;
try { r1= arg1. toString ( ) . split ( "." ) [ 1 ] . length} catch ( e) { r1= 0 }
try { r2= arg2. toString ( ) . split ( "." ) [ 1 ] . length} catch ( e) { r2= 0 }
m= Math. pow ( 10 , Math. max ( r1, r2) ) ;
n= ( r1>= r2) ? r1: r2;
return ( ( arg1* m- arg2* m) / m) . toFixed ( n) ;
}
9.解决 js 浮点数 乘法 bug
cosnt floatMul = function ( arg1, arg2 ) {
var m= 0 , s1= arg1. toString ( ) , s2= arg2. toString ( ) ;
try { m+= s1. split ( "." ) [ 1 ] . length} catch ( e) { }
try { m+= s2. split ( "." ) [ 1 ] . length} catch ( e) { }
return Number ( s1. replace ( "." , "" ) ) * Number ( s2. replace ( "." , "" ) ) / Math. pow ( 10 , m) ;
}
10.解决 js 浮点数 除法 bug
const floatDiv = function ( arg1, arg2 ) {
var t1= 0 , t2= 0 , r1, r2;
try { t1= arg1. toString ( ) . split ( "." ) [ 1 ] . length} catch ( e) { }
try { t2= arg2. toString ( ) . split ( "." ) [ 1 ] . length} catch ( e) { }
r1= Number ( arg1. toString ( ) . replace ( "." , "" ) ) ;
r2= Number ( arg2. toString ( ) . replace ( "." , "" ) ) ;
return ( r1/ r2) * Math. pow ( 10 , t2- t1) ;
}
11.科学计数法转换
const scienceNum = function ( value ) {
if ( isEmpty ( value) ) {
return value;
}
value = value. toString ( ) ;
if ( value. indexOf ( "e" ) > 0 || value. indexOf ( "E" ) > 0 ) {
var ePart;
var scalePart;
var valueList;
if ( value. indexOf ( "e" ) > 0 ) {
valueList = value. split ( "e" ) ;
} else if ( value. indexOf ( "E" ) > 0 ) {
valueList = value. split ( "E" ) ;
}
if ( valueList. length < 2 ) {
return value;
}
ePart = valueList[ 0 ] ;
scalePart = valueList[ 1 ] ;
var result;
if ( ePart. indexOf ( "." ) > 0 ) {
var ePartList = ePart. split ( "." ) ;
var fLength = ePartList[ 0 ] . length;
var sLength = ePartList[ 1 ] . length;
if ( scalePart. indexOf ( "-" ) >= 0 ) {
if ( ePartList[ 0 ] . indexOf ( "-" ) >= 0 ) {
ePartList[ 0 ] = ePartList[ 0 ] . replace ( "-" , "" ) ;
result = "-0." ;
} else {
result = "0." ;
ePartList[ 0 ] = ePartList[ 0 ] . replace ( "+" , "" ) ;
}
var scalePartList = scalePart. split ( "-" ) ;
for ( var i = 0 ; i < scalePartList[ 1 ] - 1 ; i++ ) {
result = result + "0" ;
}
result = result + ePartList[ 0 ] + ePartList[ 1 ] ;
return result;
} else {
var scalePartList;
if ( scalePart. indexOf ( "+" ) >= 0 ) {
scalePartList = scalePart. split ( "+" ) ;
scalePartList = scalePartList[ 1 ] ;
} else {
scalePartList = scalePart;
}
ePartList[ 0 ] = ePartList[ 0 ] . replace ( "+" , "" ) ;
result = ePartList[ 0 ] . toString ( ) + ePartList[ 1 ] . toString ( ) ;
var leftLength = scalePartList - sLength;
if ( leftLength > 0 ) {
for ( var j = 0 ; j < leftLength; j++ ) {
result = result + "0" ;
}
}
return result;
}
} else {
if ( scalePart. indexOf ( "-" ) >= 0 ) {
if ( ePart. indexOf ( "-" ) >= 0 ) {
ePart = ePart. replace ( "-" , "" ) ;
result = "-0." ;
} else {
ePart = ePart. replace ( "+" , "" ) ;
result = "0." ;
}
var scalePartList = scalePart. split ( "-" ) ;
for ( var i = 0 ; i < scalePartList[ 1 ] - 1 ; i++ ) {
result = result + "0" ;
}
result = result + ePart;
return result;
} else {
var scalePartList;
if ( scalePart. indexOf ( "+" ) >= 0 ) {
scalePartList = scalePart. split ( "+" ) ;
scalePartList = scalePartList[ 1 ] ;
} else {
scalePartList = scalePart;
}
ePart = ePart. replace ( "+" , "" ) ;
result = ePart. toString ( ) ;
var leftLength = scalePartList;
if ( leftLength > 0 ) {
for ( var j = 0 ; j < leftLength; j++ ) {
result = result + "0" ;
}
}
return result;
}
}
}
return value;
}
12.按照开头首字母排序
const characterSort = function ( str ) {
if ( typeof str === 'string' )
str = str. split ( ',' ) ;
if ( ! Array. isArray ( str) ) {
console. error ( '参数类型错误, 必须为数组或以(,)分割的字符串.' )
return str;
}
str. sort ( ) ;
return str. join ( ) ;
}
13.元素JS复制功能
const copyToClipboard = function ( ElementId, callback ) {
try {
var content = document. getElementById ( ElementId) . innerHTML || document. getElementById ( ElementId) . value;
if ( ! content) {
callback ( false )
}
if ( window. clipboardData) {
window. clipboardData. clearData ( ) ;
clipboardData. setData ( "Text" , content) ;
} else if ( navigator. userAgent. indexOf ( "Opera" ) != - 1 ) {
window. location = content;
} else {
var aux = document. createElement ( "input" ) ;
aux. setAttribute ( "value" , content) ;
document. body. appendChild ( aux) ;
aux. select ( ) ;
document. execCommand ( "copy" ) ;
document. body. removeChild ( aux) ;
}
callback ( true )
} catch ( e) {
callback ( false )
}
}
14.解析url 参数值
const getQueryString = function ( name ) {
var reg = new RegExp ( "(^|&)" + name + "=([^&]*)(&|$)" , "i" ) ;
var r = window. location. search. substr ( 1 ) . match ( reg) ;
if ( r != null ) return unescape ( r[ 2 ] ) ; return null ;
}
15.格式化时间
const getTimeFormat = function ( value, type ) {
if ( value) {
let oDate = new Date ( ) ;
oDate. setTime ( value) ;
let y = oDate. getFullYear ( ) ;
let m = oDate. getMonth ( ) + 1 ;
let d = oDate. getDate ( ) ;
let h = oDate. getHours ( ) ;
let mm = oDate. getMinutes ( ) ;
let s = oDate. getSeconds ( ) ;
if ( type== "long" ) {
return y + '-' + checkTime ( m) + '-' + checkTime ( d) + ' ' + checkTime ( h) + ':' + checkTime ( mm) + ':' + checkTime ( s) ;
} else {
return y + '.' + checkTime ( m) + '.' + checkTime ( d) ;
}
}
}
function checkTime ( num ) {
if ( num< 10 ) {
return "0" + num
} else {
return num
}
}
16.计算两个时间相差了几个小时
const getIntervalHour = function ( startDate, endDate ) {
var ms = endDate. getTime ( ) - startDate. getTime ( ) ;
if ( ms < 0 ) return 0 ;
return Math. floor ( ms/ 1000 / 60 / 60 ) ;
}