用于BIC检查的正则表达式

San*_*oku 11 php regex iban preg-match bank

我为php函数pregmatch写了一个正则表达式,如下所示:

^([a-zA-Z]){4}([a-zA-Z]){2}([0-9a-zA-Z]){2}([0-9a-zA-Z]{3})?$^
Run Code Online (Sandbox Code Playgroud)

现在我需要检查BIC字符串的一致性.

它出了点问题......总是正确的.我不明白为什么.

我使用的代码是这样的:

/**
 * Checks the correct format from the 
 * @param string $bic
 * @return boolean
 */
public function checkBic($bic)
{
    $bic = $this->cleanFromSeparators($bic);
    if (preg_match($this->getBicCompare(), $bic)) {
        return true;
    } else {
        return false;
    }
}

private function getBicCompare()
{
    return "^([a-zA-Z]){4}([a-zA-Z]){2}([0-9a-zA-Z]){2}([0-9a-zA-Z]{3})?$^";
}
Run Code Online (Sandbox Code Playgroud)

编辑:

以下是来自swift帐户的BIC格式的一些参考:

http://www.sage.co.uk/sage1000v2_1/form_help/workingw/subfiles/iban_and_bic.htm

http://en.wikipedia.org/wiki/ISO_9362

http://www.swift.com/products_services/bic_and_iban_format_registration_bic_details?rdct=t

BIC的一个例子是:

NOLADE21STS

OPSKATWW

如果字符串由以下代码组成,则正则表达式应仅返回true:其长度为八个或十一个字符,并且包含:

银行代码 - 4个字母字符国家代码 - 2个字母位置代码 - 2个字母数字字符,零除外分支代码 - 3个字母数字字符

这些是规格.

所以长度可以是11或8,前4可以是任何东西,然后2个字母是必须的,然后是2个数字和可选的3个字母数字.

以下内容无效:

abcdefxx

abcdefxxyyy

这些也无效:

aaaa11xx

aaaa11xxyyy

等等.

Qta*_*tax 15

^用作分隔符?你可能想要更像的东西:

'/^[a-z]{6}[0-9a-z]{2}([0-9a-z]{3})?\z/i'
Run Code Online (Sandbox Code Playgroud)

  • PHP片段`$ result_bic =(bool)(preg_match('/ ^ [az] {6} [0-9a-z] {2}([0-9a-z] {3})?\ z/i', $ bic)== 1);` (4认同)

小智 8

结构体

最新版本是ISO 9362:2009(2009-10-01).SWIFT代码为8或11个字符,由以下部分组成:

4个字母:机构代码或银行代码.

2个字母:ISO 3166-1 alpha-2国家/地区代码

2个字母或数字:位置代码

如果第二个字符是"0",那么它通常是测试BIC而不是在实时网络上使用的BIC.如果第二个字符是"1",那么它表示SWIFT网络中的被动参与者,如果第二个字符是"2",那么它通常表示反向计费BIC,其中收件人支付消息而不是更常见的发件人支付邮件的模式.

3个字母或数字:分支代码,可选(主办公室为'XXX')

(http://en.wikipedia.org/wiki/ISO_9362)

(德语中的不同定义-Wiki http://de.wikipedia.org/wiki/ISO_9362)

2个字母或数字:位置代码第一个字符不能是数字"0"或"1".字母"O"不允许作为第二个字符.(此定义的正则表达式:[2-9a-z] [0-9a-np-z])

'/^[a-z]{6}[2-9a-z][0-9a-np-z]([a-z0-9]{3}|x{3})?$/i'
Run Code Online (Sandbox Code Playgroud)

  • 添加正则表达式的各个部分与规范相关的细分将非常有用. (3认同)
  • 德语维基百科还说,可选分支名称不得以“ X”开头,除非其为XXX。那么正则表达式为''/ ^ [AZ] {6} [2-9A-Z] [0-9A-NP-Z](XXX | [0-9A-WYZ] [0-9A-Z] {2 })?$ / i'` (2认同)

小智 7

This is the official SEPA pattern for validating BIC

[A-Z]{6,6}[A-Z2-9][A-NP-Z0-9]([A-Z0-9]{3,3}){0,1}
Run Code Online (Sandbox Code Playgroud)

  • 你在哪里找到的? (7认同)