javascript中对数据文本格式化的思考

陈立扬      2022-02-09     193

关键词:

在一些要求精度没有那么准确的场景下,我们可以直接通过Number.prototype.toFixed()来实现保留小数点两位这样的需求。

var num = 123.45678
console.log(num.toFixed(2)) //123.46

var num2 = 12
console.log(num2.toFixed(2)) //12.00

不过如果恰好,数字是一个整数,那么就会输出12.00这样的格式,我们常常对于后面为00的整数要求直接输出整数即可。因此不妨这样写。

var num = 123.45678
console.log(num.toFixed(2).replace(‘.00‘, ‘‘)) //123.46

var num2 = 12
console.log(num2.toFixed(2).replace(‘.00‘, ‘‘)) //12

toFixed()后面直接接着replace()将整数才会出现的.00字符串替换掉即可。

ps: Number.prototype.toFixed返回的是一个字符串

数字为[0-9]的情况下,前置补0

在输出某些数字的时候下,如果是小于10的情况下需要在前面补0,尤其是在输出日期时间的时候。

以前在用Date对象去获取到相关的时间数据的时候去判断是否小于10,如果是就补0

var date = new Date()
var min = date.getMinutes()
min = min < 10 ? ‘0‘ + min : min
console.log(min) //08

后来觉得实在不够优雅,而且代码繁多,就想到用字符串替换的方式。

var date = new Date()
var min = String(date.getMinutes()).replace(/^(d{1})$/, ‘0$1‘)
console.log(min) //08

这样利用正则去匹配到单数字的情况下直接在前面加上0即可,一行代码,更加优雅。

再继续衍生下去,我基本上都是在日期格式化的时候需要做数字替换,何不直接整个字符串替换即可?比如将2017-1-8 12:8替换成2017-01-08 12:08

var date = ‘2017-1-8 12:8‘.replace(/d{1}/g, ‘0$&‘)
console.log(date)

通过正则去做整个字符串替换,不再针对性的针对某些部分做处理了。 最后给出完整的格式化日期函数示例。

function formatDate (source,  format = ‘yyyy-MM-dd‘) {
    let date = new Date();
    if (typeof source === ‘string‘) format = source;
    if (typeof source === ‘number‘) date = new Date(source);
    if (typeof source === ‘object‘) date = source;

    const year = date.getFullYear();
    const month = date.getMonth() + 1;
    const day = date.getDate();
    const hour = date.getHours();
    const miniute = date.getMinutes();
    const second = date.getSeconds();
    return format.replace(‘yyyy‘, year)
                  .replace(‘MM‘, month)
                  .replace(‘dd‘, day)
                  .replace(‘hh‘, hour)
                  .replace(‘mm‘, miniute)
                  .replace(‘ss‘, second)
                  .replace(/d{1}/g, ‘0$&‘);
}

如何在 JavaScript 中对文本框进行验证 [关闭]

】如何在JavaScript中对文本框进行验证[关闭]【英文标题】:HowtodovalidationfortextboxinJavaScript[closed]【发布时间】:2012-12-1118:53:21【问题描述】:我需要对符合以下条件的文本进行验证。不允许使用数字。允许的字符包括:A-Z、a-z、... 查看详情

javascript中对日期格式化的新想法.

...符串.只要告诉函数你想要什么结果就好了,以下是在ios的JavaScript中我新写的日期格式化函数:1/**2格式化日期3@param{String}formatStr-格式化字符串4@description5"date":显示日期.如:2017/09/096"time":显示时间.如:15:09:057"minute":显示到分钟.如 查看详情

在 R Shiny Server 中对文本进行样式化或格式化

】在RShinyServer中对文本进行样式化或格式化【英文标题】:StylizeorformattextinRShinyServer【发布时间】:2013-10-0401:42:36【问题描述】:我有一个在闪亮服务器上运行的应用程序,我想格式化文本的小部分,而不需要管理整个页面的css... 查看详情

javaee笔记——javascript中对dom的操作

节点及其类型在JavaScript中,节点分为三种:元素节点:HTML标签元素.属性节点:元素的属性,可以直接通过属性的方式来操作. 文本节点:是元素节点的子节点,其内容为文本.在html文档的什么位置编写js代码?一般地,在body节点之前... 查看详情

javascript笔记--json

JavaScriptJSON(JavaScript Object Notation): 是一种轻量级的数据交换格式JSON是用于存储和传输数据的格式JSON通常用于服务端向网页传递数据  JSON使用JavaScript语法,但是JSON格式仅仅是一个文本(文本可以被任何编程语言... 查看详情

是否可以在文本视图中对数据进行排序?

】是否可以在文本视图中对数据进行排序?【英文标题】:Isitpossibletosortdatainatextview?【发布时间】:2015-09-1900:26:26【问题描述】:我正在使用“Codeofaninja”。androidtablescrollcode他生成数据。我用一个sqlite数据库替换了它。它运作... 查看详情

Laravel 时间戳格式 / JavaScript 日期

】Laravel时间戳格式/JavaScript日期【英文标题】:LaravelTimestampFormat/JavaScriptDate【发布时间】:2016-02-1309:59:25【问题描述】:我环顾四周,但未能找到以特定格式返回Laravel时间戳/日期时间的明确方法。它如何保存在数据库中对我来... 查看详情

如何缩放文本格式的特征“年龄”?

...需要从以下格式的数据集中缩放“年龄”属性。如何在R中对基于文本的变量进行缩放?age_upon_outcome2weeks1month3months1year3weeks2months8months【问题讨论】:你能再清楚 查看详情

如何在 Apache Mahout 中对数值数据进行分类?

】如何在ApacheMahout中对数值数据进行分类?【英文标题】:HowdoIclassifynumericaldatainApacheMahout?【发布时间】:2014-11-0811:07:28【问题描述】:我有一个格式为class,unigramcount,bigramcount,sentiment的数字数据集。我浏览了一些ApacheMahout文档... 查看详情

格式化 JavaScript 警告框中的文本

】格式化JavaScript警告框中的文本【英文标题】:FormatthetextinJavaScriptalertbox【发布时间】:2013-07-0211:46:15【问题描述】:如何?我需要在文本中添加下划线。【问题讨论】:【参考方案1】:非常需要这个,但没有一个答案特别有... 查看详情

javascript在粘贴事件上获取剪贴板数据(跨浏览器)

Web应用程序如何检测粘贴事件并检索要粘贴的数据?我想在将文本粘贴到富文本编辑器之前删除HTML内容。之后粘贴后清理文本有效,但问题是所有以前的格式都丢失了。例如,我可以在编辑器中编写一个句子并将其设为粗体,... 查看详情

如何在 mongodb javascript 中对数据库数据进行排序? (节点.js)

】如何在mongodbjavascript中对数据库数据进行排序?(节点.js)【英文标题】:HowdoIsortdatabasedatainmongodbjavascript?(node.js)【发布时间】:2021-02-1300:05:30【问题描述】:我在Discord.js中创建机器人。它有等级系统(你可以通过在聊天中写... 查看详情

如何在javascript中读取本地的json格式文本文件

本地有个吧数据按json格式写好的文本文件我想在javascript脚本中读取这个文本文件的内容,并转换成一个json格式的变量怎么办?g.loadScript=function(uri,cb,charset)//load单个请求var_script=document.createElement("script");_script.type="text/j... 查看详情

项目开发中对成长的一些思考

写作目的希望通过这次分享能够让大家更好的去独立进行项目开发,或者是带着团队一起去完成项目的开发,并且在这过程中都有成长。前言项目总有做完的时候,就是看有没有做对,做成。除了关注项目本身之外,还需要关注... 查看详情

Javascript 警报中的文本颜色

】Javascript警报中的文本颜色【英文标题】:ColourofTextinaJavascriptAlert【发布时间】:2008-12-2409:58:53【问题描述】:有没有办法改变文本的样式,在Javascript警告框中格式化文本。例如改变它的颜色,让它变得粗体等等?另外,如果... 查看详情

如何在javascript中的`onblur`函数上格式化数字?

】如何在javascript中的`onblur`函数上格式化数字?【英文标题】:Howtoformatanumberon`onblur`functioninjavascript?【发布时间】:2011-11-0409:25:30【问题描述】:我的网页有一个输入文本框,用户必须在其中输入一个数字(例如“100000”)。... 查看详情

使用 JavaScript 进行文本解析和格式化

】使用JavaScript进行文本解析和格式化【英文标题】:TextparsingandformattingwithJavaScript【发布时间】:2014-04-2208:37:58【问题描述】:我在一个应用程序中工作,在文本格式化(粗体、斜体和下划线)时遇到问题。我通过用#b#、#i#和#u#... 查看详情

如何在 python 3 中对大量文本进行分类?

】如何在python3中对大量文本进行分类?【英文标题】:Howtoclassifyaverylargeamountoftextinpython3?【发布时间】:2019-09-1813:26:56【问题描述】:我必须对超过10,000个类别的大量文本进行分类。我需要专家建议,因为我还是一名学生。我... 查看详情