我寫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