javascript 格式化字符串函数,将输入123455.9833格式化为 123,455.98
来源:互联网 发布:随机梯度下降算法 编辑:程序博客网 时间:2024/06/05 03:57
^/-?[1-9]/d{0,2},(/d{3},)*/d{3}(/./d+)?$ //匹配 12,045,345.343 -12,045,345.343带千分位
^/-?[1-9]/d{0,2}(/./d+)?$ //匹配 34.454 -34.454 不带千分位
^/-0?(/./d+)$|^/-0(/./d+)?$|^0?(/./d+)?$ //匹配 -0.123 .343 无整数位
^/-?[1-9]/d+(/./d+)?$ //匹配 123455.98 -3243545.55 普通double类型
上面分了几种情况,下面将上面几种情况拼起来就是我要的正则表达式
^/-?[1-9]/d{0,2},(/d{3},)*/d{3}(/./d+)?$|^/-?[1-9]/d{0,2}(/./d+)?$|^/-0?(/./d+)$|^/-0(/./d+)?$|^0?(/./d+)?$|^/-?[1-9]/d+(/./d+)?$
现在希望各位熟悉正则表达式的朋友指点,是否能优化一下,感觉实在太长。
以下是javascript 格式化字符串函数,将输入123455.9833格式化为 123,455.98
2 <!--
3
4 function formatString(el)
5 ...{
6 var obj;
7 if(arguments.length==0)
8 obj = event.srcElement;
9 else
10 obj = el;
11 val = obj.value;
12 //首先格式化小数为2位
13 var regex = /^-?[1-9]d...{0,2},(d...{3},)*d...{3}(.d+)?$|^-?[1-9]d...{0,2}(.d+)?$|^-0?(.d+)$|^-0(.d+)?$|^0?(.d+)?$|^-?[1-9]d+(.d+)?$/;
14 if(val!="" && regex.test(val)==true)
15 ...{
16 ary = val.split(".");
17 if(ary.length==1)
18 ...{
19 if(val == "")
20 val = "0";
21 obj.value = val + ".00";
22 }
23 else
24 ...{
25 if(ary[1].length<2)
26 obj.value = val + "0";
27 else if(ary[1].length>2)
28 obj.value = ary[0] + "." + ary[1].substring(0,2);
29 }
30 }
31 //对没有逗号分隔符的输入加上逗号分隔符
32 regex = /^-?[1-9]d...{3,}(.d+)?$/;
33 if(regex.test(obj.value)==true)
34 ...{
35 val = obj.value;
36 var zf = parseFloat(val)<0?"-":"";
37 if(zf!="")
38 val = val.substr(1);
39 ary = val.split(".");
40 var len = ary[0].length;
41 len = (len-len%3)/3 + (len%3>0);
42 var str = "";
43 var m = ary[0];
44 for(var i=len-1; i >= 0; i--)
45 ...{
46 var d = Math.pow(1000,i);
47 var y = m%d; //余数
48 var s = (m-y)/d;
49 if(i<len-1)
50 ...{
51 for(var j=2;j>0; j--)
52 ...{
53 if(s < Math.pow(10,j))
54 s = "0" + s;
55 else
56 break;
57 }
58 }
59 if(str!="")
60 str += ",";
61 str += s;
62 m = y;
63 }
64 if(zf!="")
65 str = "-" + str;
66 if(ary.length>1)
67 obj.value = str+"."+ary[1];
68 else
69 obj.value = str+".00";
70 }
71 }
72
73 //-->
74 </script>
- javascript 格式化字符串函数,将输入123455.9833格式化为 123,455.98
- 将1格式化为0001字符串格式化String.format
- 将普通字符串格式化为HTML C#
- mysql将字符串格式化为日期
- javascript 将日期格式化为yyyy-MM-dd格式
- 将字符串数字格式化为样式1,000,000,000
- 将Http请求输入流转化为字符串工具类StreamHelper
- 将流转化为字符串
- 字符串处理技术之格式化字符串(把数字格式化为货币字符串)
- sql格式化工具-可以将查询字段格式化为5个一组方便查个
- Java字符串格式化为时间,时间格式化为字符串
- php 字符串格式化为时间
- springMVC自定义json序列化格式,将Date格式化为字符串
- springMVC自定义json序列化格式,将Date格式化为字符串
- js 将时间戳格式化为 yyyy-MM-dd HH:mm:ss 格式的字符串
- js扩展Date将时间格式化为"yyyy-MM-dd hh:mm:ss"格式的字符串
- 日期格式化,可以格式化为英文
- 将磁盘格式化为NTFS格式
- 使用梅花雨日历控件应该注意的问题
- 母亲杨沫——老鬼
- 自动保存tool bar的位置和状态
- ADO.NET的基本特性
- IBM教程
- javascript 格式化字符串函数,将输入123455.9833格式化为 123,455.98
- jsp中任意文字转Unicode的通用模块
- code
- 用函数式编程技术编写优美的 JavaScript
- BDB读、写、删除、更新事物的简单例子。
- [转]从LiveJournal后台发展看大规模网站性能优化方法
- 顺利通过软件评测师考试
- 从ASP.NET服务器控件插入客户端脚本
- 网卡MAC地址相关信息大全(整理)(