ASP.NET RegularExpressionValidator, проверить на несоответствие? - PullRequest
2 голосов
/ 14 февраля 2009

Есть ли способ использовать RegularExpressionValidator для проверки только тогда, когда ValidationExpression не совпадает? В частности, используйте регулярное выражение PO BOX для проверки адреса, который NOT PO BOX.

Спасибо!

Ответы [ 5 ]

3 голосов
/ 14 февраля 2009

Вы можете эффективно инвертировать свое регулярное выражение, используя отрицательный прогноз .

Например, рассмотрим следующее регулярное выражение, которое соответствует только строке цифр:

^\d+$

Это выражение можно инвертировать следующим образом:

^(?!\d+$).*$
3 голосов
/ 14 февраля 2009

Просто используйте NegativeRegularExpressionValidator:)

[ToolboxData("<{0}:NegativeRegularExpressionValidator runat=\"server\" ErrorMessage=\"NegativeRegularExpressionValidator\"></{0}:NegativeRegularExpressionValidator>")]
public class NegativeRegularExpressionValidator : RegularExpressionValidator
{
    protected override bool EvaluateIsValid()
    {
        return base.EvaluateIsValid() == false;
    }
}
1 голос
/ 14 февраля 2009

Решение Майка Чали очень хорошее, но оно не подходит для клиентской стороны.

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

1 голос
/ 14 февраля 2009

Создайте регулярное выражение, которое НЕ проверяет PO BOX, или используйте пользовательский валидатор.

0 голосов
/ 15 октября 2015

Другое решение для сценариев на стороне клиента:

<asp:TextBox runat="server" ID="MYiD" />


<asp:CustomValidator runat="server" ControlToValidate="MyId" ErrorMessage="Wrong"
    ClientValidationFunction="ClientValidate" />



<asp:Button runat="server" OnClick="OnClick" />

<script language="javascript"> 
function ClientValidate(source, arguments)
{
    var value = arguments.Value;
    var res = value.match('abc');       
    arguments.IsValid = (res == null || res === undefined);
}
</script>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...