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 表达式是啥?的主要内容,如果未能解决你的问题,请参考以下文章

java.util.regex 的 C# 等价物是啥?

Regex 正则表达式中几个符号([ ] ^ ?: ?= ?!)的概念

var regex = /^[\d\,\.]*$/;这个正则是啥含义

c#Regex是啥意思,哪位高手能完全的解释下IsMatch(strIn,@"^[a-zA-Z0-9]6,16$");

\\s正则表达式是啥意思 即String regex="\\.\\s*";是啥意思

将json调用语法从Objective-C转换为Swift的正确方法是啥?