2010-06-12 14 views
5

mam do filtrowania danych wprowadzanych przez użytkownika do mojej strony ASP.NET Web:Co to jest poprawne wyrażenie RegEx dla kodów SWIFT?

<asp:TextBox runat="server" ID="recipientBankIDTextBox" MaxLength="11" /> 
<asp:RegularExpressionValidator runat="server" ValidationExpression="?" ControlToValidate="recipientBankIDTextBox" ErrorMessage="*" /> 

Jak daleko jest Znam kod SWIFT musi zawierać 5 lub 6 litery i inne symbole do łącznej długości 11 są alfanumeryczne.

Jak właściwie wdrożyć taką regułę?

Odpowiedz

18

Szybka kod powinien być 8 lub 11 liter lub cyfr, gdzie pierwsze sześć muszą być literami. Ale tak naprawdę to nie ma znaczenia, co to jest, ważne jest to, że rozumiesz, jak stworzyć takie wyrażenie. Oto wyrażenie regularne z adnotacjami, aby pokazać, co oznaczają części.

 
^[A-Z]{6}[A-Z0-9]{2}([A-Z0-9]{3})?$ 
    ^  ^  ^^ 
     |   |   | | 
     6 letters 2 letters 3 letters or digits 
        or digits  | 
           last three are optional 

Wszystkie przykłady na Wikipedii pokazują tylko duże litery A-Z. Jeśli chcesz także zezwolić na pisanie małych liter, zmień A-Z na A-Za-z. Sprawdziłbym, co to jest napisane, ale niestety nie jest łatwo uzyskać kopię.

2

To powinno załatwić sprawę

^([a-zA-Z]){4}([a-zA-Z]){2}([0-9a-zA-Z]){2}([0-9a-zA-Z]{3})?$ 
+0

Po co istnieją dwie różne grupy - pierwsza i druga - z równą wypowiedzi? Dlaczego nie po prostu '([a-zA-Z]) {6}"? – abatishchev

+1

Tak, masz rację, możesz to zrobić - podzielę go na dwie grupy wyłącznie na podstawie tego, że pierwsza grupa należy do banku, a druga to kod kraju. np. dla Natwest Bank, Wielka Brytania. 'NWBK' plus' GB'. – codingbadger

Powiązane problemy