2013-07-04 38 views
0

我在下面這個代碼來轉換一個電話號碼與555 555 555555555555之間的空格。此外,我想檢查號碼是否有9位數字。數據轉換和長度檢查

$form = $builder 
    ->add('Nombre', 'text') 
    ->add('Email', 'text') 
    ->getForm(); 

$builder->add($builder->create('telefono', 'text', array(
    'constraints' => new Assert\Length(array('min'=> 9, 'max' => 9, 'exactMessage' => 'The telephone number must have 9 digits'))) 
     ->addModelTransformer($transformer)); 

$form = $builder->getForm(); 

問題:即使它有9位數字,我也會收到錯誤消息「電話號碼必須有9位數」。

這裏有我的轉化方法:

public function transform($cadena) 
    { 
     $cadena = preg_replace('/\s+/', '', $cadena); 

     return $cadena; 
    } 

    public function reverseTransform($cadena) 
    { 
     return $cadena; 

    } 
} 

任何想法?

回答

2

嘗試以此爲約束

new Assert\Regex(pattern="/^\d{9}$/", message="exactMessage") 
+0

thnks,工作。我認爲正確的正則表達式是:'^(?:\ d \ s *){8} \ d $' – ziiweb