我写PHP函数pregmatch一个正则表达式是这样的:正则表达式BIC检查
^([a-zA-Z]){4}([a-zA-Z]){2}([0-9a-zA-Z]){2}([0-9a-zA-Z]{3})?$^
现在,我需要检查的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})?$^";
}
编辑:
下面是从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: 其长度为8个或11个字符,并且包含:
银行代码 - 4个字母字符 国家代码 - 2个字母 位置代码 - 2字母数字字符,零除外 分支代码 - 3个字母数字字符
这些是规格。
所以长度可以是11或8,前4可以是任何东西,然后2个字母是必须的,然后2个数字和可选的3个字母数字。
下是无效的:
abcdefxx
abcdefxxyyy
这些还都是无效:
aaaa11xx
aaaa11xxyyy
等。
可以请你提供更多的信息?例如,如何正确的BIC应该和不应该看... – 2013-04-10 07:53:33
威尔:)只是一瞬间 – Sangoku 2013-04-10 07:57:23
@Sangoku您能给我们带来什么不应该工作的例子,但没有? – Loamhoof 2013-04-10 08:12:58