2017-12-25 20 views
2

내가 지금까지 한 것은 무엇입니까?JavaScript에 적어도 하나의 문자와 6 자 이상의 문자를 모두 포함하는 정규식

  1. [.*a-z] : 적어도 하나 개의 문자를 검색

    가 나는 다음을 수행해야이 정규식

    /[.*a-z][*\w*\W]{5,}/i

    을 만들었습니다. .

  2. *\w 다음 _ (밑줄 포함 0 개 이상의 단어 문자 (AZ, AZ, 0-9,)에 대한 검색
  3. *\W :. 0 개 이상의 비 단어 문자 (+ 검색 - = 등)
  4. {5, } : 거기 [*\w*\W] 적어도 5 자이고 [.*a-z] 조합으로하면 6 자 합계는 적어도 하나 개의 문자를 검색하는 경우 검색
  5. /i을 :. 하부 및도 상부 케이스로서 검색
한다.

무엇이 문제입니까?

문자열에 적어도 하나의 문자를 포함하는 문자열을 허용 하겠지만 처음에 문자가 포함 된 경우에만 작동합니다. 왜 ? 예 : 문자열 y12345이 작동하지만 문자열 123y45은 작동하지 않습니다. 내 정규식에 캐럿 (^)이 없기 때문에 원래 정규식의 시작 부분에 캐럿 (^)이있는 것처럼 작동하는 것 같습니다. like so /^[.*a-z][*\w*\W]{5,}/i

그리고 나는 그것이 패스워드를위한 완벽한 정규식인가를 알고 싶다.

시간 내 주셔서 감사합니다.

+0

'/[a-AA-Z]/g.test(str) && str.length> 6' 여기서'str'은 문자열의 이름입니다. –

+0

나는이//.* a-z] [* \ w * \ W] {5,}/ig '을 만들었지 만 여전히 작동하지 않습니다. – Ahtisham

+0

당신의 정규식은'78s234'에 대해 작동하지 않습니다 –

답변

2

시도해보십시오.

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

demo을 찾을 수 있습니다.

패턴이이 단어와 일치합니다.

y12345 
123y45 
yyyyyy 
12345y 
+0

단어가 아닌 문자와 어떻게 일치하는지 이해할 수 없습니까? 설명해주십시오. '\ W'을 사용하지 않았거나 특수 문자를 지정 했는데도 여전히 단어가 아닌 문자와 어떻게 일치합니까? '. {6,}'의'.' 때문에 그것입니까? – Ahtisham

+1

'\ W'는 반드시 사용해야하는 것은 아닙니다. 이 패턴은 단순히 ". *"(단어 또는 단어가 아닌 문자)와 일치하는 긍정적 인 미리보기를 찾지 만 적어도 한 단어 문자 여야합니다. ([a-zA-Z]) – lucky

+0

이 게시물을 읽은 후 : https://blog.codinghorror.com/password-rules-are-bullshit/ 나는 패스워드에 어떤 규칙도 적용해서는 안된다는 결론에 이르렀다. 최소 문자 수) 및 암호에 유니 코드를 포함해야합니다. 그래서 염두에두고 이것에 대한 나의 정규식을 편집했습니다 :'/.{8,}/u'. 당신의 생각은 무엇입니까? – Ahtisham