110,536
社区成员
发帖
与我相关
我的任务
分享
Regex reg = new Regex(@"^(?:[1-9][0-9]*|0)(?:\.[0-9]{2})?$");
Regex reg = new Regex(@"^(?:[1-9][0-9]*|0)(\.[0-9]{2})?$");
if (reg.IsMatch(textBox1.Text))
{
if (textBox1.Text.IndexOf(".") == -1)
{
textBox1.Text += ".00";
}
}
else
{
MessageBox.Show("输入格式错误!");
}
<html>
<head>
<script>
//返回一个浮点数
function getDouble(str)
{
//如果为空,则通过校验
if(str == "")
return 0;
else
{
if(/^((\-|\+)?)(\d+)((.{1})(\d+))?$/g.test(str))
{
return parseFloat(str);
}
else if(/^((\-|\+)?)((\d+,)*)(\d+)((.{1})(\d+))?$/g.test(str))
{
return parseFloat(str.replace(/[^0-9\.\-]/g,''));
}
else
{
return '0.00';
}
}
}
function formatNumber(num,cent,isThousand)
{
num = num.toString().replace(/[^0-9\.\-]/g,'');
if(isNaN(num))//检查传入数值为数值类型.
num = "0";
if(isNaN(cent))//确保传入小数位为数值型数值.
cent = 0;
cent = parseInt(cent);
cent = Math.abs(cent);//求出小数位数,确保为正整数.
if(isNaN(isThousand))//确保传入是否需要千分位为数值类型.
isThousand = 0;
isThousand = parseInt(isThousand);
if(isThousand < 0)
isThousand = 0;
if(isThousand >=1) //确保传入的数值只为0或1
isThousand = 1;
sign = (num == (num = Math.abs(num)));//获取符号(正/负数)
//Math.floor:返回小于等于其数值参数的最大整数
num = Math.floor(num*Math.pow(10,cent)+0.50000000001);//把指定的小数位先转换成整数.多余的小数位四舍五入.
cents = num%Math.pow(10,cent); //求出小数位数值.
num = Math.floor(num/Math.pow(10,cent)).toString();//求出整数位数值.
cents = cents.toString();//把小数位转换成字符串,以便求小数位长度.
while(cents.length<cent){//补足小数位到指定的位数.
cents = "0" + cents;
}
if(isThousand == 0) //不需要千分位符.
return (((sign)?'':'-') + num + '.' + cents);
//对整数部分进行千分位格式化.
for (var i = 0; i < Math.floor((num.length-(1+i))/3); i++)
{
num = num.substring(0,num.length-(4*i+3))+','+num.substring(num.length-(4*i+3));
}
if(cent==0)
return (((sign)?'':'-') + num)
return (((sign)?'':'-') + num + '.' + cents);
}
</script>
</head>
<body>
<input type='text' id='aaa' onchange="this.value=formatNumber(getDouble(this.value),2,false)" >
</body>
</html>
^(?:[1-9][0-9]*|0)\.[0-9]{2}$