我想编写以字节为单位的文件大小(7762432)并以用户可读格式(7,762,432字节)返回值的函数.
function(fileSizeBytes){
// mind blowing logic :)
return userReadable;
}
Run Code Online (Sandbox Code Playgroud)
我是用旧式的字符串拆分方式完成的,但我只是好奇是否存在可以让我头晕目眩的方式让我尖叫着"天哪,它也可以这样做!!"
function addCommas(value) {
var regex = /^(\d+)(\d{3}[\.]?.*)$/;
while (regex.exec(value)) {
value= RegExp.$1
? RegExp.$1 + ',' + RegExp.$2
: RegExp.$2;
}
return value;
}
Run Code Online (Sandbox Code Playgroud)
一行功能:
function formatFileSizeBytes(size) {
return size.replace(/(\d)(?=(\d{3})+$)/g, "$1,");
}
Run Code Online (Sandbox Code Playgroud)
一些测试:
for (var i = 0; i <= "123456789".split('').length; i++) {
alert(formatFileSizeBytes(a.slice(0,i).join('')));
}
Run Code Online (Sandbox Code Playgroud)