SWIFT 代码的正确 RegEx 表达式是啥?
Posted
技术标签:
【中文标题】SWIFT 代码的正确 RegEx 表达式是啥?【英文标题】:What is proper RegEx expression for SWIFT codes?SWIFT 代码的正确 RegEx 表达式是什么? 【发布时间】:2011-03-02 23:19:33 【问题描述】:我必须在我的 Web ASP.NET 页面上过滤用户输入:
<asp:TextBox runat="server" ID="recipientBankIDTextBox" MaxLength="11" />
<asp:RegularExpressionValidator runat="server" ValidationExpression="?" ControlToValidate="recipientBankIDTextBox" ErrorMessage="*" />
据我所知,SWIFT 代码必须包含 5 或 6 个字母,而其他符号最多为 11 个字母数字。
如何正确执行此类规则?
【问题讨论】:
【参考方案1】:swift 代码应该是 8 或 11 个字母或数字,其中前六个必须是字母。但无论如何,它是什么并不重要,重要的是您了解如何创建这样的表达。这是一个带有注释的正则表达式,可以向您展示各个部分的含义。
^[A-Z]6[A-Z0-9]2([A-Z0-9]3)?$ ^ ^ ^ ^ | | | | 6 个字母 2 个字母 3 个字母或数字 或数字 | 最后三个是可选的***上的所有例子都只显示大写字母 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)?$
【讨论】:
为什么有两个不同的组 - 第一个和第二个 - 具有相同的表达式?为什么不只是([a-zA-Z])6
?
是的,你是对的,你可以这样做 - 我将它分成两组纯粹是因为第一组属于银行,第二组是国家代码。例如,英国 Natwest 银行。 NWBK
加上GB
。【参考方案3】:
根据http://en.wikipedia.org/wiki/ISO_9362...
/[A-Z]6[A-Z0-9]2([A-Z0-9]3)?/i
【讨论】:
以上是关于SWIFT 代码的正确 RegEx 表达式是啥?的主要内容,如果未能解决你的问题,请参考以下文章
Regex 正则表达式中几个符号([ ] ^ ?: ?= ?!)的概念
var regex = /^[\d\,\.]*$/;这个正则是啥含义
c#Regex是啥意思,哪位高手能完全的解释下IsMatch(strIn,@"^[a-zA-Z0-9]6,16$");