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)
小智 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)
小智 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)
| 归档时间: |
|
| 查看次数: |
17955 次 |
| 最近记录: |