// 只能输入整数或浮点数(不完全版本不能排除输入0.00000的状况)
filterNumber(
name,
e){
//先把非数字的都替换掉,除了数字和.
e.
target.
value =
e.
target.
value.
replace(
/
[^
\d
\.
]
/
g,
'');
//必须保证第一个为数字而不是.
e.
target.
value =
e.
target.
value.
replace(
/
^
\.
/
g,
'');
//保证第一位只能有一个或0个0
e.
target.
value =
e.
target.
value.
replace(
/
^
0
{2,}
/,
'0');
//以0开始的第二位只能为小数点
e.
target.
value =
e.
target.
value.
replace(
/
^
0
[
\d
]
/,
'0');
//保证只有出现一个.而没有多个.
e.
target.
value =
e.
target.
value.
replace(
/
\.{2,}
/
g,
'.');
//保证.只出现一次,而不能出现两次以上
e.
target.
value =
e.
target.
value.
replace(
'.',
'$#$').
replace(
/
\.
/
g,
'').
replace(
'$#$',
'.');
return e;
}
在知道保留几位小数的情况下可解决。即当位数到达最后一位时如果还输入的0就用''替换掉。