2013-07-25 2 views
0

암호에 적어도 하나의 숫자가 작동하는지 확인하는 정규식을 얻을 수 없습니다. 이것은 모든 곳에서 대답되었지만 분열되면 모든 답이 작동을 멈 춥니 다. 이 Working Password Validation 예를 들어 내가 제거하는 경우 : 작업암호가 깨져서 Regexp가 작동하지 않습니다.

(?=.*[a-z])(?=.*[A-Z])(?=.*[@#$%^&+=]) 

^(?=.*[0-9])(?=.*[a-z])(?=.*[A-Z])(?=.*[@#$%^&+=])(?=\S+$).{8,}$ 

에서 한 자리의 존재를 확인하기 위해, 모든 것은 내가 새로 온

중지 정규 표현식을 사용하면 이것이 의미가있는 것처럼 보일 수 있지만 가능한 경우 표시하지 않습니다.

+0

무엇을하려하십니까? 비밀번호가 최소한 1 자리 이상인지 확인하십시오. – Srb1313711

+0

오류 메시지를 나누려고했기 때문에 하나의 큰 메시지 대신 여러 개의 특정 메시지가 있어야했습니다. 즉, 하나의 숫자가 있어야하고 그 다음에는 소문자가 있어야한다는 등의 다른 문자가 있어야합니다. –

답변

0

나는 당신이 무엇을 의미하는지 모르겠다. 모든 것이 작동을 멈춘다..

(?=.*[a-z])(?=.*[A-Z])(?=.*[@#$%^&+=]) 

위의 모든 것을 의무화됩니다 않습니다

  1. 소문자가 적어도 한 번
  2. 가 대문자가 적어도 한 번
  3. @#$%^&+=해야 중 하나를 표시합니다 나타나야합니다 적어도 한 번만 나타나십시오.

그래서, 이들은 본질적으로 독립적 인 구성 요소입니다.

String에 숫자가 포함되어 있는지 확인하는 방법은 다양합니다. 어떻게 확인하고 싶은지는 귀하의 특정 요구 사항에 달려 있습니다. 제시된 정규식에 사용되는 방법은 통해이를 수행 앞서 포지티브 보면 : ^(?=.*[0-9])

^
시작 *. 0 일치 이상의 비 - 개행 문자 [0-9]
: A는 숫자와 일치하는 문자 클래스 [0,1,2, ..., 9]
은? =이 존재 IFF에 맞게 말합니다이 경우, 이는 앞서 긍정적 인 모습을 적어도 하나의 숫자

희망 그것은 도움이되었습니다. Oracle's Tutorial on Regular Expressions부터 시작할 수 있습니다. 소화 한 후 Google을 통해 고급 리소스를 찾을 수있을 것입니다.

+0

I 나는 이것도 잘 못했다. 유효성을 검사하기 위해 최대 절전 모드 4를 사용하고 있습니다. 우리 콩에는 @Pattern (regexp = "^ (? =. * [0-9]) (? = \ S + $). {8,} $", message = "{must.contain.one.digit } ") 그리고"asd43 "이라는 문자열을 입력한다고해도 문자열에 숫자가 포함되어야한다고 말하는 오류가 발생합니다. –

+0

아, 마침내 알아 냈습니다. 문자열 크기 제한이 8 자리 숫자를 요구하는 혼란을 일으켰습니다. 그 오라클 튜토리얼과 약간의 시간을 보낼 필요가있는 제안을 해주셔서 감사합니다. –

+0

@BaradiBaradari 문제 없습니다. 행운을 빕니다. –

관련 문제