2017-04-18 32 views
0

我使用的是笨3.X錯誤驗證表單用正則表達式

$this->form_validation->set_rules('FieldName','FriendlyName','trim|required|regex_match[/^([a-zA-Z]{6}[0-9]{2}[a-zA-Z]{1}[0-9]{2}[a-zA-Z]{1}[0-9]{3}[a-zA-Z]{1})$|^([0-9]{11})$/]'); 

此正則表達式是由搶財政法或意大利增值稅代碼(或者)

這個正則表達式驗證

我收到此錯誤

嚴重性:警告消息:的preg_match():沒有結束符 '/' 發現

這是怎麼回事?我看到了「/」字符開頭,並在我的正則表達式通話結束...

感謝

+0

做一個回調函數。 – Tpojka

回答

0

您需要處理不同的方式正則表達式的一部分,因爲管道(|)是創設問題。

當笨嘗試這條線轉換成規則陣列

$this->form_validation->set_rules(
'FieldName', 
'FriendlyName', 
'trim|required|regex_match[/^([a-zA-Z]{6}[0-9]{2}[a-zA-Z]{1}[0-9]{2}[a-zA-Z]{1}[0-9]{3}[a-zA-Z]{1})$|^([0-9]{11})$/]'); 

笨就會得到這樣的: -

Array 
(
    [0] => trim 
    [1] => required 
    [2] => regex_match[/^([a-zA-Z]{6}[0-9]{2}[a-zA-Z]{1}[0-9]{2}[a-zA-Z]{1}[0-9]{3}[a-zA-Z]{1})$ 
    [3] => ^([0-9]{11})$/] 
) 

但正確的轉換應該是這樣的: -

Array 
(
    [0] => trim 
    [1] => required 
    [2] => regex_match[/^([a-zA-Z]{6}[0-9]{2}[a-zA-Z]{1}[0-9]{2}[a-zA-Z]{1}[0-9]{3}[a-zA-Z]{1})$^([0-9]{11})$/] 
) 

因此,以這種方式應用這個正則表達式:|不應該在正則表達式部分使用