2010-06-12 132 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

相关问题