Мне нужно регулярное выражение, которое исключает только числа, делящиеся на 1,5. Я понятия не имею, возможно ли это?ASP.NET - Регулятор регулярного выражения
Я проверил библиотеку регулярных выражений, и у них ничего нет. У кого-нибудь есть идеи?
Мне нужно регулярное выражение, которое исключает только числа, делящиеся на 1,5. Я понятия не имею, возможно ли это?ASP.NET - Регулятор регулярного выражения
Я проверил библиотеку регулярных выражений, и у них ничего нет. У кого-нибудь есть идеи?
Как уже говорили другие, Regex не является правильным инструментом, и это лучше использовать CustomValidator как следующее:
<asp:CustomValidator ID="DivisibleByOnePointFiveValidator" runat="server" ErrorMessage="Must be divisible by 1.5!"
Display="Dynamic" ControlToValidate="MyTextBox" EnableClientScript="false"
OnServerValidate="DivisibleByOnePointFiveValidator_ServerValidate" >
</asp:CustomValidator>
protected void DivisibleByOnePointFiveValidator_ServerValidate(object source, ServerValidateEventArgs args)
{
decimal inputValue;
if (!decimal.TryParse(args.Value, out inputValue))
{
args.IsValid = false;
return;
}
args.IsValid = inputValue % 1.5M == 0;
}
Регулярные выражения предназначены для проверки строки, а не для числовой проверки (кроме определения того, что-то является или не является числовым). Для этого вам понадобится специальный валидатор.
Неправильно использовать регулярные выражения для проверки числовых значений. Лучше написать небольшую функцию валидатора только для этой цели.
С этим регулярным выражением вы можете легко проверить числовое/нечисловое число: [0-9]+
Конечно, это позволит использовать многие ведущие нули и не принимать во внимание десятичные значения. Вы можете получить более сложные, такие как [0-9]+(\.(0|[0-9]+))?
Я думаю, что это сделало бы десятичную факультативную. И мы даже не начали отрицательных знаков, научной нотации и других форматов нотации. Если вы укажете допустимый формат ввода, мы сможем легко справиться с регулярным выражением.
Расширять .. РЗ необходимо проверить ли вход число, а другой шаг должен проверьте, делится ли он на 1,5, так что это будет двухэтапный процесс. – DerekH
@DerekH: было бы неплохо обновить ваш вопрос, чтобы сказать, что вы хотите подтвердить, что ввод представляет собой числовую строку в определенных разрешенных форматах (с десятичными знаками/выводами, ведущими нулями, научной записью и т. Д.). – FrustratedWithFormsDesigner
На самом деле не мой вопрос, распространялся на ответ Кейта. Который я должен был указать! – DerekH