将文本框中的数据格式化为$ ###,###,###,## 0.00

时间:2011-02-08 05:13:07

标签: jquery-ui

我有一个文本框,我总是想要$ ###,###,###,## 0.00格式的数据(比如$ 25.00)。现在输入一些数据我想得到相同的格式。例如,如果我输入25,它应转换为25.00美元,如果我输入' as23afs' (字符)它应该转换为$ 0.00。我该怎么做?请提出解决方案。如果我可以使用正则表达式,我该怎么办?

2 个答案:

答案 0 :(得分:4)

答案 1 :(得分:0)

我正面临同样的问题,现在我修复了通过设置文本框自定义格式: 在KeyPress事件中使用此代码:

 private void yourtextbox_KeyPress(object sender, KeyPressEventArgs e)
    {
        if (e.Handled = !char.IsDigit(e.KeyChar) && e.KeyChar != (char)8 && e.KeyChar != ',' && e.KeyChar != '$') // 8 is back space
        {

            if (e.KeyChar == (char)13) // 13 is Enter
            {
                yourtextbox.Text = string.Format("${0:#,##0.00}", double.Parse(yourtextbox.Text));
            }
        }

    }

现在你的文本框只接受数字和','和'$'

现在如果您输入'as23afs'(字符),它应该转换为$ 0.00。 使用此代码:

yourtextbox.Text = double.Parse("0").ToString("N2");//"N2" to show 00 after ','.

我认为我希望这段代码可以帮助每个人在文本框中查找货币格式。

所以完整的代码应该是这样的:

     public Form1()
        {
            InitializeComponent();

            yourtextbox.Text = double.Parse("0").ToString("N2");//"N2" to show 00 after ','
        }



     private void yourtextbox_KeyPress(object sender, KeyPressEventArgs e)
    {
        if (e.Handled = !char.IsDigit(e.KeyChar) && e.KeyChar != (char)8 && e.KeyChar != ',' && e.KeyChar != '$') // 8 is back space
        {

            if (e.KeyChar == (char)13) // 13 is Enter
            {
                yourtextbox.Text = string.Format("${0:#,##0.00}", double.Parse(yourtextbox.Text));
            }
        }

    }