Last active
November 26, 2020 01:34
-
-
Save srcmaker/a704d6feda212e993f2c633b56484758 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php | |
/** | |
* @param $string | |
* @return bool | |
* | |
* 대한민국 이름인지 체크 | |
* 대법원 가족관계등록예규 제109호에 의하면 이름 글자수는 성을 제외하고 5자를 넘을 수 없다. | |
* | |
*/ | |
function isKoreanName($string) | |
{ | |
$string = trim($string); | |
// 한글로만 이루어진 게 아니면 한국어 이름 아님 | |
preg_match('/^[가-힣]+$/',$string,$korean_matches); | |
if(empty($korean_matches)) return false; | |
$nameLen = mb_strlen($string); | |
// 앞 2자가 2자 성씨에 들어가면 우리나라 이름 | |
$familyNames2Str = "남궁,독고,동방,망절,사공,서문,선우,소봉,장곡,제갈,황보"; | |
$familyNames2 = explode(',',$familyNames2Str); | |
if(in_array(mb_substr($string,0,2),$familyNames2)){ | |
// 성포함 이름은 3자 이상, 7자 이하이어야 우리나라 이름 | |
return ($nameLen >= 3 and $nameLen <= 7)? true:false; | |
} | |
// 앞 1 자가 1자 성씨에 들어가면 우리나라 이름. | |
// 여,유,염,용,이,임 등 초성이 'ㅇ' 으로 시작되는 성은 'ㅇ' 을 'ㄹ' 로 바꾸어 사용 가능하다. | |
$familyNames1Str = "가,간,갈,감,강,개,견,경,계,고,곡,공,곽,교,구,국,군,궁,궉,권,근,금,기,길,김,나,난,남,낭,내,노,뇌,누,단,담,당,대,도,돈,동,두,라,량,려,로,류,렴,룡,륙,리,림,마,만,매,맹,명,모,목,묘,묵,문,미,민,박,반,방,배,백,범,변,복,봉,부,비,빈,빙,사,사,삼,상,서,석,선,설,섭,성,소,소,소,손,송,수,순,승,시,신,심,십,아,안,애,야,양,어,어금,엄,여,연,염,영,예,오,옥,온,옹,왕,요,용,우,운,원,위,유,육,윤,은,음,이,인,임,자,장,저,전,점,정,제,조,종,좌,주,준,즙,증,지,진,차,창,채,천,초,최,추,수,춘,탁,탄,태,판,팽,편,평,포,표,풍,피,필,하,학,한,함,해,허,현,형,호,홍,화,환,황,후,흥"; | |
$familyNames1 = explode(',',$familyNames1Str); | |
if(in_array(mb_substr($string,0,1),$familyNames1)){ | |
// 성포함 이름은 2자 이상, 6자 이하이어야 우리나라 이름 | |
return ($nameLen >= 2 and $nameLen <= 6)? true:false; | |
} | |
// 아무 것도 걸리지 않으면 우리나라 이름 아님 | |
return false; | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment