^\-?[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
1
<script language="javascript">
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>
![](/Images/OutliningIndicators/None.gif)
2
![](/Images/OutliningIndicators/None.gif)
3
![](/Images/OutliningIndicators/None.gif)
4
![](/Images/OutliningIndicators/None.gif)
5
![](/Images/OutliningIndicators/None.gif)
6
![](/Images/OutliningIndicators/None.gif)
7
![](/Images/OutliningIndicators/None.gif)
8
![](/Images/OutliningIndicators/None.gif)
9
![](/Images/OutliningIndicators/None.gif)
10
![](/Images/OutliningIndicators/None.gif)
11
![](/Images/OutliningIndicators/None.gif)
12
![](/Images/OutliningIndicators/None.gif)
13
![](/Images/OutliningIndicators/None.gif)
14
![](/Images/OutliningIndicators/None.gif)
15
![](/Images/OutliningIndicators/None.gif)
16
![](/Images/OutliningIndicators/None.gif)
17
![](/Images/OutliningIndicators/None.gif)
18
![](/Images/OutliningIndicators/None.gif)
19
![](/Images/OutliningIndicators/None.gif)
20
![](/Images/OutliningIndicators/None.gif)
21
![](/Images/OutliningIndicators/None.gif)
22
![](/Images/OutliningIndicators/None.gif)
23
![](/Images/OutliningIndicators/None.gif)
24
![](/Images/OutliningIndicators/None.gif)
25
![](/Images/OutliningIndicators/None.gif)
26
![](/Images/OutliningIndicators/None.gif)
27
![](/Images/OutliningIndicators/None.gif)
28
![](/Images/OutliningIndicators/None.gif)
29
![](/Images/OutliningIndicators/None.gif)
30
![](/Images/OutliningIndicators/None.gif)
31
![](/Images/OutliningIndicators/None.gif)
32
![](/Images/OutliningIndicators/None.gif)
33
![](/Images/OutliningIndicators/None.gif)
34
![](/Images/OutliningIndicators/None.gif)
35
![](/Images/OutliningIndicators/None.gif)
36
![](/Images/OutliningIndicators/None.gif)
37
![](/Images/OutliningIndicators/None.gif)
38
![](/Images/OutliningIndicators/None.gif)
39
![](/Images/OutliningIndicators/None.gif)
40
![](/Images/OutliningIndicators/None.gif)
41
![](/Images/OutliningIndicators/None.gif)
42
![](/Images/OutliningIndicators/None.gif)
43
![](/Images/OutliningIndicators/None.gif)
44
![](/Images/OutliningIndicators/None.gif)
45
![](/Images/OutliningIndicators/None.gif)
46
![](/Images/OutliningIndicators/None.gif)
47
![](/Images/OutliningIndicators/None.gif)
48
![](/Images/OutliningIndicators/None.gif)
49
![](/Images/OutliningIndicators/None.gif)
50
![](/Images/OutliningIndicators/None.gif)
51
![](/Images/OutliningIndicators/None.gif)
52
![](/Images/OutliningIndicators/None.gif)
53
![](/Images/OutliningIndicators/None.gif)
54
![](/Images/OutliningIndicators/None.gif)
55
![](/Images/OutliningIndicators/None.gif)
56
![](/Images/OutliningIndicators/None.gif)
57
![](/Images/OutliningIndicators/None.gif)
58
![](/Images/OutliningIndicators/None.gif)
59
![](/Images/OutliningIndicators/None.gif)
60
![](/Images/OutliningIndicators/None.gif)
61
![](/Images/OutliningIndicators/None.gif)
62
![](/Images/OutliningIndicators/None.gif)
63
![](/Images/OutliningIndicators/None.gif)
64
![](/Images/OutliningIndicators/None.gif)
65
![](/Images/OutliningIndicators/None.gif)
66
![](/Images/OutliningIndicators/None.gif)
67
![](/Images/OutliningIndicators/None.gif)
68
![](/Images/OutliningIndicators/None.gif)
69
![](/Images/OutliningIndicators/None.gif)
70
![](/Images/OutliningIndicators/None.gif)
71
![](/Images/OutliningIndicators/None.gif)
72
![](/Images/OutliningIndicators/None.gif)
73
![](/Images/OutliningIndicators/None.gif)
74
![](/Images/OutliningIndicators/None.gif)