2013-01-09 5 views
1

Я пытаюсь проверить элемент управления текстовым полем, который должен содержать число от одной до бесконечности (оно не может быть 0 или отрицательным числом).Регулярное выражение от одного до бесконечности

Я хотел бы использовать regularexpressionvalidator в C#, так как rangevalidator запрашивает максимальное число, если я не хочу, чтобы он был один.

Я надеялся, что если кто-нибудь сможет помочь мне создать регулярное выражение, которое проверяет число от одного до бесконечности.

Я искал онлайн, и закрытая вещь, которую я нашел, это {1,}, но это вызывает ошибку parsing "{1,}" - Quantifier {x,y} following nothing. Не слишком опирался на регулярные выражения, но надеялся, что кто-то поможет мне найти ответ.

ответ

3

Это сделать:

[1-9][0-9]* 

Один или несколько цифр, за исключением 0.

+0

@Rawling - спасибо, что указали его. – Oded

1

Вы должны использовать CompareValidator с ValueToCompare=0 и Operator="GreaterThan".

Вы также можете использовать compareValidator, чтобы проверить, если число целое, с Operator="DataTypeCheck"

+0

Это кажется идеальным ... Предположительно, вам нужно сказать, чтобы он ожидал целого числа (или поплавка) каким-то образом, поэтому он не выполняет, например. сравнение строк? – Rawling

+0

Да, свойство 'Type' также указывает, какой тип следует ожидать в поле. – MarcinJuraszek

1

предполагая Integer что-то вроде

[1-9] [0-9] *

должно быть в порядке

7

Если вам просто нужно целое число,

[1-9][0-9]* 

должен был вас покрыть. Это «отличная от нуля цифра, за которой следует любое количество цифр».

Если вы не хотите отклонять, например. 04546, что-то вроде

0*[1-9][0-9]* 

должны это сделать. (То же, что и выше, которому предшествуют ноль или более нулей.)

+0

Во втором случае просто сделайте '[0-9] +' –

+3

@ RenéWolferink. Это позволит пропускать '0', не так ли? – Rotem

+0

Упс, ты прав! –

Смежные вопросы