2013-08-13 1 views
2

적어도 하나의 특수 문자와 하나의 영문자를 허용하는 암호 필드에 대해 정규식을 공식화하려고합니다.암호 필드에 대해 정규식을 공식화하는 중 문제가 발생했습니다.

내가 요리 한 Rubular에서이 정규 표현식 ((?=.*\d)(?=.*[a-zA-Z])(?=.*\W))으로 이미 시도해 보았습니다. 그러나 제대로 작동하지 않습니다.

테스트 문자열 :

이 친절이를 극복 할 수있는 방법을 제안 123 @ 테스트.

몇 가지 설명을 추가해주세요.

+0

는 때로는 훨씬 더 읽기보다는 하나보다 3 개 검사에이 휴식하기에 큰 정규식 – exussum

+0

당신이 제대로 그 작동하지 않는 말을 정확히 무슨 뜻입니까? 테스트 문자열과 완벽하게 일치합니다. – smerny

+0

OP는 테스트 문자열과 일치하지 않는다고 생각합니다. –

답변

3

귀하의 정규식이 귀하의 테스트 문자열과 실제로 일치합니다. 미리보기를 괄호 안에 싸서 캡쳐 그룹에 넣고 싶다고합니다.

미리보기를 둘러싼 캡처 그룹을 감싸는 것은 확인하기 만하면됩니다. 이 같은 후 전체 일을 캡처 캡처 그룹을 만들어야합니다 :

^(?=.*\d)(?=.*[a-zA-Z])(?=.*\W)(.{6,20})$ 

^$ 그냥 통과 전체 문자열을 확인하고 있습니다. 캡쳐 그룹 () 내의 .은 전체 경기를 가져 오는 것입니다. {6,20}은 6 ~ 20 자 사이 여야한다고 말합니다. 원하는 경우 번호를 변경할 수 있습니다.

Rubular

+0

매우 멋지게 설명되었습니다 .... 당신의 노력으로 저에게 최대 표를드립니다. –

관련 문제