ASP.NET - средство проверки регулярных выражений - PullRequest
0 голосов
/ 04 января 2011

Мне нужно регулярное выражение, которое исключает только числа, кратные 1,5.Я понятия не имею, возможно ли это вообще?

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

Ответы [ 3 ]

3 голосов
/ 05 января 2011

Как уже говорили другие, 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;
    }
2 голосов
/ 05 января 2011

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

1 голос
/ 05 января 2011

Не рекомендуется использовать регулярные выражения для проверки числовых значений. Лучше написать небольшую функцию валидатора как раз для этой цели.

Вы можете очень легко проверить числовые / нечисловые значения с помощью этого регулярного выражения: [0-9]+ Конечно, это позволит использовать много ведущих нулей и не учитывать десятичные дроби. Вы можете получить более сложные, такие как [0-9]+(\.(0|[0-9]+))? Я думаю, что это сделает десятичную опциональной. И мы даже не начали в отрицательных знаках, научной нотации и других форматах нотации. Если вы укажете разрешенный формат ввода, мы сможем гораздо легче помочь с регулярным выражением.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...