Я пытаюсь проверить числа, имеющие максимум 3 десятичных цифры.
Мое регулярное выражение ^\d+([.,]\d{1,3})?$
Я игнорирую культурные различия в языке (свойство CultureInvariant имеет значение true), поэтому я добавил «,» в выражение.
Я пробовал следующие тесты:
- 1000 (Ввод: правильно; результат: Пройдено)
- 0, (Ввод: неправильный; результат: не удалось)
- 1.111 (Ввод: правильно; результат: Пройдено)
- пробелы (ввод: неверно; результат: пройдено)
Даже со знаками ^ и $ он позволяет пользователю вводить пробелы и не показывает мою ошибку проверки.
Что происходит не так?
ОБНОВИТЬ:
Ниже приведен мой код в файле aspx:
<td>
<asp:TextBox ID="txtBuildingSize" CssClass="textbox" runat="server"
ToolTip="in Sq Ft" meta:resourcekey="txtBuildingSizeResource1"></asp:TextBox>
<asp:Label ID="lblSqM1" runat="server" CssClass="optionLabel"
meta:resourcekey="lblSqM1Resource1" Text="square meters"></asp:Label>
</td>
<td>
<asp:RegularExpressionValidator ID="strBuildingSizeValidator"
ControlToValidate="txtBuildingSize" Display="Dynamic"
runat="server" ForeColor="Red" ValidationExpression="^\d+([.,]\d{1,3})?$"
meta:resourcekey="strBuildingSizeValidatorResource1"
Text="* Max 3 decimals only"></asp:RegularExpressionValidator>
ОБНОВЛЕНИЕ 2: я попытался проверить это снова. Регулярное выражение работает нормально. Он не позволяет вводить данные в форму, пока я не удалю пробелы из текстовых полей. Теперь единственная проблема заключается в том, что он не показывает ошибку проверки при попытке ввести пробелы.
Решено: ^\d+([.,]\d{1,3}\ {0,0})?$
(пробел){0,0} сделал свое дело. Появляется сообщение об ошибке.