61阅读

js格式化-js数字格式化

发布时间:2018-02-01 所属栏目:编程开发

一 : js数字格式化

js 数字,金额 用逗号 隔开。[www.61k.com)数字格式化 Posted on 2011-03-07 11:04 pcajax 阅读(6308) 评论(0) 编辑 收藏 例如: 12345格式化为12,345.00 12345.6格式化为12,345.60 12345.67格式化为 12,345.67 只留两位小数。 回来后写了个格式化函数。可以控制小数位数,自动四舍五入。 代码如下: 引用function fmoney(s, n) { n = n > 0 && n <= 20 ? n : 2; s = parseFloat((s + "").replace(/[^d.-]/g, "")).toFixed(n) + ""; var l = s.split(".")[0].split("").reverse(), r = s.split(".")[1]; t = ""; for(i = 0; i < l.length; i ++ ) { t += l[i] + ((i + 1) % 3 == 0 && (i + 1) != l.length ? "," : ""); } return t.split("").reverse().join("") + "." + r; } 调用:fmoney("12345.675910", 3),返回12,345.676 还原函数: 引用function rmoney(s) { return parseFloat(s.replace(/[^d.-]/g, "")); } 示例(可保存一下代码为html文件,运行查看效果): 引用<SCRIPT> function fmoney(s, n) { n = n > 0 && n <= 20 ? n : 2; s = parseFloat((s + "").replace(/[^d.-]/g, "")).toFixed(n) + ""; var l = s.split(".")[0].split("").reverse(), r = s.split(".")[1]; t = ""; for(i = 0; i < l.length; i ++ ) { t += l[i] + ((i + 1) % 3 == 0 && (i + 1) != l.length ? "," : ""); } return t.split("").reverse().join("") + "." + r; } function rmoney(s) { return parseFloat(s.replace(/[^d.-]/g, "")); } function g(id) { return document.getElementById(id); } window.onload = function() { var num, txt = g("txt"), txt2 = g("txt2"), btn = g("btn"), btn2 = g("btn2"), span = g("span"); btn.onclick = function() { num = parseInt(g("num").value); txt.value = fmoney(txt.value, num); txt2.value = fmoney(txt2.value, num); } ; btn2.onclick = function() { num = parseInt(g("num").value); span.innerHTML = "=" + fmoney(rmoney(txt.value) + rmoney(txt2.value), num); } ; } ; </SCRIPT> 小数点位数: <select id="num"> <option value="2">2</option> <option value="3">3</option> <option value="4">4</option> <option value="5">5</option> </select> <input type="text" id="txt" value="12345.675910"> + <input type="text" id="txt2" value="1223"> <span id="span"></span> <br> <input type="button" id="btn" value="格式化"> <input type="button" id="btn2" value="相加">

二 : 让Editplus自动格式化css和js 的插件

今天正好看了一下editplus 的用户工具,它允许通过命令行调用和标准输出输出与其它程序进行交互,可以传入参数可以手动指定,也可以是当前选定内容,当前本件所有文本等,即然这样我们就利用它的filter模式,即把所有文本内容传过去,再使用回传内容替换当前文本。那么我们还需要一个外部工具,为了方便起见,脚本类语言当然是首选,而在windows平台下面可以使用vbs和JScript, 那么就用JScript吧,去网上找一个 http://github.com/einars/js-beautify/tree/master 的东西,它提供在线的js格式化功能,正好是js写的, 拿它回来稍做改造一下,使用WScript的Std接口接收和发送内容
var input = "";
while(!WScript.StdIn.AtEndOfStream)
{
   input += WScript.StdIn.ReadAll();
}
从输入端读入数据.
WScript.Echo(formated_code); 发送数据.
那么js的格式化就搞定了, 再来看看css的,很怀念VS里面可以将一个CSS定义都放到一行上面去,这样看起来比较方便,否则代码太长了要拖半天.  这样的话看起来也不是太难,就自己动手写一个了. 两个文件我已经打包. 下载完可以解压到任意目录,接着就配置Editplus.

打开Tools->ConfigUserTools, 工具名称可以随意,比如jsFormatter, 在Command处写上 Cscript.exe /nologo  e:jsFormatter.js  后面的路径就是js的引用路径,  并钩选下面的run as text fileter,让它作为文本过滤器使用,OK,现在打开一个待格式化的js 文件,  按下Ctrl+1(默认的第一个用户工具快捷键), 可以看到文本已经格式化好了。

后记:
     要是可以格式化html和php那就更好了, js-beautify 里面也可格式化html,可惜效果不太好,我就没放进去,要是能有Aptana编辑器那么出色的效果就好了, 它可以完美处理js脚本, css, html的混合格式化,  想了一下似乎可以建一个java的控制台程序引用Aptana的插件 jar 包就能实现, 通过ICodeFormatter可以完成对各种类型代码的格式化,  留待以后研究.

    不会造工具的猩猩永远是猩猩,会自己制造工具的程序员可以有效提高自己的生产力,windows下面的VBScript, JScript和Python, Perl 等脚本语言都是很好的助手. 在这个应用中先查看Editplus帮助,再搜索MSDN脚本技术参考,顺便复习一下正则表达式应用,  既能解决问题又能提高技能水平,  希望大家都行动起来自己动手DIY, good luck!

两个文件见附件: js_css_Formatter.rar

三 : js格式化时间当前时间

[script type="text/javascript"]


//时间对象的格式化
Date.prototype.format =function(format){
// format="yyyy-MM-dd hh:mm:ss";
var o = {"M+" : this.getMonth() + 1,"d+" : this.getDate(),"h+" : this.getHours(),"m+" : this.getMinutes(),"s+" : this.getSeconds(),"q+" : Math.floor((this.getMonth() + 3) /3),"S" : this.getMilliseconds()}if (/(y+)/.test(format)){format = format.replace(RegExp.$1, (this.getFullYear() +"").substr(4- RegExp.$1.length));}for (var k in o){if (new RegExp("(" + k +")").test(format)){format = format.replace(RegExp.$1, RegExp.$1.length ==1? o[k]: ("00" + o[k]).substr(("" +o[k]).length));}}return format;}
//调用示例:
//new Date().format("yyyy-MM-dd hh:mm:ss");
//结果:2012-09-01 15:44:26

alert(new Date().format("yyyyMMdd"));
</script>
本文标题:js格式化-js数字格式化
本文地址: http://www.61k.com/1169296.html

61阅读| 精彩专题| 最新文章| 热门文章| 苏ICP备13036349号-1