2013-11-03 6 views
2

잠금 해제를위한 특별한 활성화 키가 필요한 PHP 응용 프로그램이 있습니다. 그래서 $user_input의 형식이 올바른지 확인하는 스크립트를 만들고 싶습니다.PHP가 문자열 형식이 올바른지 확인하십시오.

활성화 키는 다음과 같이 될 것입니다 :
1E63-DE12-22F3-1FEB-8E1D-D31F

번호 및 간격이 다를 수 있습니다 문자.
그래서 정품 인증 키는이 또는 다른 같은도있을 수 있습니다 :
1EE3-1E1C-R21D-1FD7-111D-D3Q5

  1. 콜론이 구분되어 - 모든 콜론 4 개 글자가 혼합 된 문자 및 숫자

을 포함

  • 사전에 도움을 주셔서 감사합니다 :)

  • +1

    정규식을 사용하여 다음 질문을 확인하십시오. http://stackoverflow.com/questions/2428343/regex-for-product-key – younes0

    +3

    왜 당신은 형식이 잘 맞으면 코드를 검사해야합니다. 형식이 일치하지 않으면 형식이나 코드가 일치하지 않기 때문입니다. 드, 작동하지 않습니다. 그러나 사용자가이 형식으로 입력하기를 원한다면 4 maxlength의 텍스트 상자를 6 개 넣고 입력을받을 때 각각'-'로 연결하십시오 –

    +0

    이것은 입력 확인 후 형식 확인을위한 것입니다 추가 점검까지. 어쨌든, 당신의 제안/아이디어는 매우 좋기 때문에 그것을 사용할 수 있습니다. 고맙습니다. – xZero

    답변

    6

    정규 표현식을 사용해야합니다. 여기이 정규식을 테스트 한 : http://www.phpliveregex.com/

    <?php 
    
    $key = '1E63-DE12-22F3-1FEB-8E1D-D31F'; 
    $regex = '^[A-Z0-9]{4}-[A-Z0-9]{4}-[A-Z0-9]{4}-[A-Z0-9]{4}-[A-Z0-9]{4}-[A-Z0-9]{4}$'; 
    
    if (preg_match($regex, $key)) { 
        echo 'Passed'; 
    } else { 
        echo 'Wrong key'; 
    } 
    
    +0

    수정 후 잘 작동합니다. 수정하지 않으면 오류가 발생합니다. "preg_match() : 종료 구분 기호가 없습니다. '^'found"이므로 수정했습니다. $ regex = '/^[A-Z0-9] {4} - [A- 9] {4} - [A-Z0-9] {4} - [A-Z0-9] {4} - [A-Z0-9] {4}/'; 감사합니다. 스크립트는 내가 원했던대로 정확하게 수행합니다. – xZero

    2

    이 정규식은 당신이 게시 된 같은 키와 일치하며, 또한 소문자가 포함 된 경우 작동합니다

    ^([A-z0-9]){4}-([A-z0-9]){4}-([A-z0-9]){4}-([A-z0-9]){4}-([A-z0-9]){4}-([A-z0-9]){4}$ 
    

    당신이 대문자 만합니다 , "Z"에 대한 정규식에서 "z"를 모두 변경하십시오.

    관련 문제