Więc mam pole

    [RegularExpression(@"([A-Za-z0-9\-\_ ]+){1,100}"]
    public string Name { get; set; }

Jeżeli Regex próbuje dopasować ciągi, które mają długość 1-100 znaków i zawiera tylko litery, cyfry, podkreślenia, kreski i spacje.

Dostaję wyjątek

Informacje dodatkowe: Parsowanie "([A-ZA-Z0-9-_] +) {1,100}" - Nierozpoznana sekwencja ucieczki _.

Jak mogę to naprawić?

1
TrumpPence2016 16 luty 2017, 22:05

2 odpowiedzi

Najlepsza odpowiedź

Wypróbuj to (pozbyć się odwrotnego ukośnika przed podkreśleniem):

[RegularExpression(@"([A-Za-z0-9\-_ ]+){1,100}"]
public string Name { get; set; }
1
Tim 16 luty 2017, 19:09

Musisz usunąć wszystkie ucieczki i + i wskazane jest umieszczenie łącznika na końcu klasy znaków, aby usunąć dowolną dwuznaczność:

[RegularExpression("[A-Za-z0-9_ -]{1,100}"]

Ponieważ wzór RegularExpressionAttribute jest zawsze niejawnie zakotwiczony, nie ma potrzeby dodawania ^ z przodu i $ na końcu. [A-Za-z0-9_ -]{1,100} Dopasuje ciąg, który składa się z 1 do 100 znaków, które są literami ASCII, cyfry, {x4}} przestrzeń lub {x5}}.

1
Wiktor Stribiżew 16 luty 2017, 19:11