2012-06-15 3 views
-1

Используйте выражение ниже для проверки текстового поля с десятичным числом. Но он принимает 12, -1.0, 12.0, 12.5.1.0 и т. Д. Но я хочу регулярное выражение типа «12.4». Первые две цифры и десятичная точка и одна цифра.asp.net регулярное выражение валидатор для десятичного числа

ValidationExpression="^-?[0-9]{0,2}(\.[0-5]{1,1})?$|^-?(100)(\.[0]{1,2})?$" 
+1

Ваше описание неясное. Из ваших выборочных входов '[12, -1.0, 12.0, 12.5, 1.0]', какие из них вы хотите совместить и с которыми не хотите совпадать? –

+1

, возможно, должен быть более четким с набором исключенных и исключенных номеров. в вашем примере вы говорите, что вы не хотите 12,5, но хотите 12,4 ?? –

+0

Мне нужна точная цифра, как эта цифра. Конечная одиночная цифра равна 5. «10,5», как это – Amulraj

ответ

2

Прежде всего, что регулярное выражение сильно усложненный. Все это можно было бы переписать как

^-?([0-9]{0,2}(\.[0-5])?|100(\.00?)?)$ 

... и иметь тот же эффект. Но, основываясь на свой комментарий, вы ищете что-то гораздо более строги:

^[0-9]{2}\.5$ 

Я не ясно, о том, почему вы хотите сделать это, но это именно то, что вы описали. Если вы не хотите, чтобы последняя цифра составляла 5 (ваш комментарий был неясным), используйте ^[0-9]{2}\.[0-9]$.

1
expr = `@"^\d{1,2}\.\d$"`; 

Начало строки - две цифры - десятичная точка - одна цифра. Нет минуса, нет целых чисел. Это то, что вы хотите?

+0

Это звучало так же, как и у меня, так что у вас есть надпись. Кстати, ['\ d' также соответствует номерам Unicode в .NET regex] (http://www.regular-expressions.info/refflavors.html), поэтому я пошел с' [0-9] ', учитывая странное строгие требования. –

+0

Фактически это начинается с 1 * или * 2 цифр. –

0

Если вы хотите две цифры до десятичного и одна цифры после десятичной попробовать этот

-?[1-9][0-9][\.][0-9] 
+0

Большое спасибо .. Его работа прекрасна. – Amulraj

+0

'.' Будет соответствовать любому символу, потому что вы не ускользнули от него. Это будет соответствовать '12 @ 3', что неверно. Кроме того, вам не нужно '- {0,1}', когда '-?' Работает отлично. –

+0

@JustinMorgan Спасибо, что исправили меня. Я отредактировал свой ответ. – Luftwaffe

0

Я протестировал ниже выражение в WPF он отлично работает один раз проверить это один

string sExpression = @"^[0-9][0-9]\.[0-9]$"; 
0

Вы можете использовать этот код на ASPX странице. Используйте свойство ^[1-9]\d*(\.\d+)?$ в свойстве ValidationExpression.

<asp:TextBox runat="server" ID="txtprice" width="50" /> 
     <asp:RegularExpressionValidator runat="server" ErrorMessage="Decimal Only" ControlToValidate="txtprice" 
     ValidationExpression="^[1-9]\d*(\.\d+)?$"></asp:RegularExpressionValidator> 
Смежные вопросы