개발 꿀팁/PHP

10개의 실용적인 PHP 정규 표현식

Jammie 2022. 8. 1. 14:58
반응형

1. 이메일 주소 확인

이것은 전자 우편을 인증하는 데 사용되는 정입니다표현식. 그러나 그것이 능률적이고 완벽한 해결책은 아니다.여기서는 사용을 권장하지 않습니다

$email = "test@ansoncheung.tk";
if (preg_match('/^[^0-9][a-zA-Z0-9_]+([.][a-zA-Z0-9_]+)*[@][a-zA-Z0-9_]+([.][a-zA-Z0-9_]+)*[.][a-zA-Z]{2,4}$/',$email)) {
    echo "Your email is ok.";
} else {
    echo "Wrong email address format";
}

이메일 주소를 보다 효과적으로 검증하기 위해 filer_var를 추천합니다

if (filter_var('test+email@ansoncheung', FILTER_VALIDATE_EMAIL)) {
    echo "Your email is ok.";
} else {
    echo "Wrong email address format.";
}

2. 아이디 인증

이것은 검증용입니다알파벳, 숫자(A-Z, a-z, 0-9), 밑줄 및 최소 5자, 최대 20자를 포함하는 아이디의 예.동시에 필요에 따라 최소값과 최대값을 합리적으로 수정할 수도 있다.

$username = "user_name12";
if (preg_match('/^[a-z\d_]{5,20}$/i', $username)) {
    echo "Your username is ok.";
} else {
    echo "Wrong username format.";
}

3. 전화번호 확인

이것은 미국 전화를 검증하는 것이다번호의 실례

$phone = "(021)423-2323";
if (preg_match('/\(?\d{3}\)?[-\s.]?\d{3}[-\s.]\d{4}/x', $phone)) {
    echo "Your phone number is ok.";
} else {
    echo "Wrong phone number.";
}
 
$isMob="/^1[3-5,8]{1}[0-9]{9}$/";
 $isTel="/^([0-9]{3,4}-)?[0-9]{7,8}$/";
 if(!preg_match($isMob,$tel) && !preg_match($isTel,$tel))
 {
  echo '<script>alert("핸드폰이나 전화번호의 형식이 잘못되었습니다.유선전화라면 반드시 이와 같이 해야 한다(xxxx-xxxxxxxx)!");history.go(-1);</script>';
  exit ();  
 }

4. IP 주소 확인

이것은 IP를 검증하기 위한 것입니다.v4 주소의 인스턴스입니다

$IP = "198.168.1.78";
if (preg_match('/^(([1-9]?[0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]).){3}([1-9]?[0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])$/',$IP)) {
    echo "Your IP address is ok.";
} else {
    echo "Wrong IP address.";
}

5. 우편번호 확인

이것은 우편물을 검증하는 데 쓰는 것이다.인코딩된 인스턴스

$zipcode = "12345-5434";
if (preg_match("/^([0-9]{5})(-[0-9]{4})?$/i",$zipcode)) {
    echo "Your Zip code is ok.";
} else {
    echo "Wrong Zip code.";
}

6. SSN(사회보험번호) 검증

미국 SSN을 검증한 사례다

$ssn = "333-23-2329";
if (preg_match('/^[\d]{3}-[\d]{2}-[\d]{4}$/',$ssn)) {
    echo "Your SSN is ok.";
} else {
    echo "Wrong SSN.";
}

7. 신용카드번호확인

$cc = "378282246310005";
if (preg_match('/^(?:4[0-9]{12}(?:[0-9]{3})?|5[1-5][0-9]{14}|6011[0-9]{12}|3(?:0[0-5]|[68][0-9])[0-9]{11}|3[47][0-9]{13})$/', $cc)) {
    echo "Your credit card number is ok.";
} else {
    echo "Wrong credit card number.";
}

8. 도메인 이름 확인

$url = "http://ansoncheung.tk/";
if (preg_match('/^(http|https|ftp):\/\/([A-Z0-9][A-Z0-9_-]*(?:\.[A-Z0-9][A-Z0-9_-]*)+):?(\d+)?\/?/i', $url)) {
    echo "Your url is ok.";
} else {
    echo "Wrong url.";
}

9. 특정 URL에서 도메인 이름 추출

$url = "http://ansoncheung.tk/articles";
preg_match('@^(?:http://)?([^/]+)@i', $url, $matches);
$host = $matches[1];
 
echo $host;

10. 키워드 강조하기

</pre><pre name="code" class="php">$text = "Sample sentence from AnsonCheung.tk, regular expression has become popular in web programming. Now we learn regex. According to wikipedia, Regular expressions (abbreviated as regex or regexp, with plural forms regexes, regexps, or regexen) are written in a formal language that can be interpreted by a regular expression processor";
$text = preg_replace("/\b(regex)\b/i", '<span style="background:#5fc9f6">\1</span>', $text);
echo $text;

 

반응형