Regex допускает только числовые символы плюс знаки, точку и E - PullRequest
1 голос
/ 04 января 2012

У меня есть TextBox, который должен принимать только цифры (они могут быть простыми int или float с коэффициентом мощности E).

Итак, некоторые допустимые примеры:

1
+1.1
0
.1
1E-1
1e-2
-1.66
-6e-10

недопустимый пример:

  E-1

Как правило, оно должно начинаться с цифры, знака + и - или точки.

Тогда я добавлю это в TextChanged событие, и все будет хорошо.

 textBox.Text = Regex.Replace(textBox.Text, @"[\d]", ""); //so useless!

Ответы [ 2 ]

3 голосов
/ 04 января 2012

Если вы хотите, чтобы ваши показатели использовались, попробуйте это (обязательно добавьте using System.Globalization;):

decimal value;
if(Decimal.TryParse(textBox.Text, NumberStyles.Float, CultureInfo.CurrentCulture, out value))
{
    textBox.Text = value.ToString();
}
1 голос
/ 04 января 2012

Зачем вообще использовать Regex?

float f;
bool isNumber = Single.TryParse(textbox.Text, out f);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...