2012-10-15 4 views
0

나는 내 모델의 첫 번째 이름을 어떤 문자가 아닌 숫자로 시행하려고하지만, 지금까지 예상대로 작동하지 않습니다. 나는이 때 : 나는 이름으로 4을 저장할 수이기 때문에CakePHP Negated RegEx not working

public $validate = array(
    'first_name' => array(
     array(
      'rule' => array('custom', '/^[\d]+/'), 
      'message' => 'Please fill in a valid first name' 
     ) 
    ) 
); 

작동하지 않습니다. 나는과 같이 괄호 내에서 부정을 이동하는 경우 :

public $validate = array(
    'first_name' => array(
     array(
      'rule' => array('custom', '/[^\d]+/'), //allow anything but numbers 
      'message' => 'Please fill in a valid first name' 
     ) 
    ) 
); 

을 내가 이름으로 A4을 저장할 수이기 때문에 그것은 또한 작동하지 않습니다. 그렇다면 사용자 지정 유효성 검사 규칙을 모두 포함하지 않아도 어떻게 두 가지 기능을 최대한 활용할 수 있습니까?

+0

'^'메타 문자는 두 가지 다른 의미를 갖습니다. 1.) 문자 클래스 밖에서 그것은 0 너비 어설 션 (앵커) 의미 : _ "문자열/줄 시작"_, 2.) 문자 클래스 내에서 (첫 번째 문자가있는 경우) char 클래스를 무효화합니다 . – ridgerunner

답변

1

/^[^\d]+$/는 숫자 이외의 것을 허용합니다.

+0

$가 필요합니까? –

+0

@paulsmith - 예, 그렇지 않으면 임의의 문자가 뒤 따르지 않습니다. –