2010-06-12 68 views
5

我要用戶輸入過濾到我的網頁ASP.NET頁面上:SWIFT代碼的正確RegEx表達式是什麼?

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

據是我所認識SWIFT代碼必須包含5個或6個字母和其他符號高達總長度11個字母數字。

如何正確實施這樣的規則?

回答

18

一個SWIFT代碼應爲8個或11個字母或數字,其中前六個必須是字母。但無論如何,它並不重要,重要的是你懂得如何創建這樣的表達。這是一個帶註釋的正則表達式,用於向您展示這些部分的含義。

 
^[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 

維基百科上的所有示例僅顯示大寫字母A-Z。如果您還想允許小寫字母,則將A-Z更改爲A-Za-z。我會檢查the ISO standard以查看所說的內容,但不幸的是,獲得副本並不是免費的。

2

這應該做的伎倆

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

對什麼有兩個不同的羣體 - 第一和第二 - 與平等的表達?爲什麼不只是'([a-zA-Z]){6}'? – abatishchev 2010-06-12 12:51:08

+1

是的,你是正確的,你可以這麼做 - 我純粹以第一組屬於銀行,第二組爲國家代碼爲基礎將其分成兩組。例如英國的Natwest Bank。 'NWBK'加'GB'。 – codingbadger 2010-06-12 15:21:07

相關問題