2011-04-06 3 views
0

영숫자로 구성된 모든 문자열과 일치하는 간단한 일치 프로그램을 만들려고합니다. 나는 다음을 시도했다 :Sencha Touch matcher는 어떻게 작동합니까?

Ext.regModel('RegistrationData', { 
     fields: [ 
      {name: 'nickname',type: 'string'}, 
     ], 

     validations: [ 
      {type: 'format', name: 'nickname', matcher: /[a-zA-Z0-9]*/} 
     ] 
    }); 

그러나 이것은 예상대로 작동하지 않는다. 정규 표현식이 정규 표현식에서 어떻게 보이는지에 대한 문서를 찾지 못했습니다.

도움 주셔서 감사합니다.

+0

무엇을 기대합니까? 그리고 무슨 일이야? 무엇이 잘못되었는지를 확인할 수 있도록 예제를 제공해주십시오. –

+0

나는 matcher가 영숫자로만 구성된 모든 닉네임과 일치 할 것으로 기대한다. 그것은 별명입니다. Joe, Joe24, jOe28이 일치해야합니다. Joe # 2, J/o/e, * 89Joe와 같은 별명은 일치하지 않아야합니다. – Palo

답변

1

나는 sencha.com에 대한 블로그를 찾았습니다. 여기에서 유효성을 설명합니다.

나는 술술 터치가 무엇인지 전혀 알지 못하지만, 당신이 정규식에 무엇을주고 있는지, 실제로 무엇을 기대하는지, 예상대로 작동하지 않는지 약간 모호하다). 블로그에 따르면 "정규 표현 형식"을 허용하므로 간단한 확인을 위해서는 꽤 표준 적이어야합니다.

편집 :

^

/^[a-zA-Z0-9]*$/ 
은 문자열의 시작과 일치한다 :

는 추측으로, 어쩌면 당신의 이름은 문자와 숫자 정말에만이 있는지 확인하기 위해 앵커를 사용하려면

$은 문자열 끝과 일치합니다.

+0

고마워요 :) – Palo

+0

@Palo 환영합니다, 또 다른 것은 아마도'*'를'+'로 바꾸고 싶지 않을 것입니다. 그렇지 않으면'* '는 0 이상을 의미하기 때문에 빈 문자열을 받아 들일 것입니다. – stema

+0

실제로 빈 문자열에도 일치 시키길 원합니다. 빈 문자열을 특정 클라이언트 메시지를 할당 한 다른 유효성 검사기로 처리합니다.그래서 나는 kepp *;) – Palo

1

현재 정규 표현식 /[a-zA-Z0-9]*/은 0 개 이상의 대문자 (A-Z) 또는 문자열의 임의의 숫자가 포함 된 문자열과 일치합니다. 따라서 Joe#2, J/o/e, *89JoeJoe, Joe24 andjOe28 '이 모두 일치합니다. 모두 0 이상의 연속 된 각 문자가 포함되어 있습니다.

당신은 당신의 캐릭터는 당신이 stema's answer에 따라 정규 표현식을 변경해야 할 각각의 문자를 포함 할 경우

/^[a-zA-Z0-9]*$/ 

하지만 아직 한 가지 문제가있다. 때문에 0 개 이상의 발생을 MEAS * 또한 빈 문자열과 일치하므로 올바른 문자열은 다음과 같아야합니다

/^[a-zA-Z0-9]+$/ 

+와 의미 하나 이상의 발생. 이렇게하면 a, F 또는 6과 같이 하나 이상의 소문자 또는 대문자 또는 숫자 만 포함 된 별명을 허용합니다.

+0

고마워, 나는 이것을 실제로 빈 문자열조차도 원한다.) – Palo