2010-04-08 10 views
5

Ext JS에서 텍스트 필드에 최대 5 자의 제한을 두지 않는다는 점에서 maskRe이 작동하지 않습니다. 그 이유는 무엇입니까?extjs 입력 텍스트 maskRe

{ 
    xtype: 'textfield', 
    fieldLabel: '* Zip Code', 
    allowBlank: false, 
    maskRe: /\d{0,5}/i 
} 
+0

크로스 게시 여기 http://www.extjs.com/forum/showthread.php?t=96609 –

+0

'은'i'를 지원 maskRe' 하는가 수식어? 그것없이 시도하십시오. –

답변

1

나는 maskRe에 익숙하지 해요,하지만 내 생각 엔 당신이 anchor에 정규식 필요가있다이다 :

maskRe: /^\d{0,5}$/ 
5

당신이 maxLength 설정을 사용하지 않는 이유? 숫자 값을 보장하기 위해 TextField 대신 NumberField을 사용할 수 있습니다. 허용 된 문자 단지 목록보다 더 복잡한 정규 표현식을해야하는 경우

7

를 사용할 필요하고 당신은 착각하고
:-) 비슷한 문제가 있었다 regex와의 maskRe. regex는 문자열 전체를 검증 할 것이고 maskRe는 char 입력을 필터링 할 것입니다. 따라서 정규 표현식에서 전체 유효성 검사 정규 표현식을 지정하고 maskRe에 허용 된 문자가있는 문자 클래스 만 지정하십시오. - 필수는 아니지만 사용자가 잘못 입력했다고 AAAAA에 입력하는 것을 원하지 않는 경우 유용합니다.

유효성을 검사하려는 것은 실제로 숫자가 아니고 숫자 코드이며 음수는 허용되지 않기 때문에 대신 NumberField를 사용하지 않을 것입니다. 또한 0-5 문자를 허용하는 대신 정확히 5를 허용하지 않는 이유는 무엇입니까? 또한 공백 문자를 허용하지 않으므로 allowBlank : false는 필요하지 않습니다.

regex: /^\d{5}$/i, 
maskRe: /\d/i 

HTH를 시도