[Delphi] 전화번호 형식으로 바꾸기
function TelNoAutoMata(vTelNo: string): string;
var
tTelNo: string;
FLocal, FSeoul: Boolean;
begin
tTelNo := StringReplace(vTelNo, '-', '', [rfReplaceAll, rfIgnoreCase]);
if (Length(tTelNo) <= 0) then begin
Result := '';
exit;
end;
if (Length(tTelNo) > 12) then begin // Edit MaxLength : 13
result := copy(vTelNo, 1, 13);
exit;
end;
FLocal := False;
FSeoul := False;
if tTelNo[1] = '0' then
FLocal := True;
if (FLocal) and (tTelNo[2] = '2') then
FSeoul := True;
if (FLocal) then
if (FSeoul) then // 서울 (02로 시작)
case Length(tTelNo) of
3: tTelNo := Copy(tTelNo, 1, 2) + '-' + Copy(tTelNo, 3, 1);
6: tTelNo := Copy(tTelNo, 1, 2) + '-' + Copy(tTelNo, 3, 3) + '-' + Copy(tTelNo, 6, 1);
9: tTelNo := Copy(tTelNo, 1, 2) + '-' + Copy(tTelNo, 3, 3) + '-' + Copy(tTelNo, 6, 4);
10: tTelNo := Copy(tTelNo, 1, 2) + '-' + Copy(tTelNo, 3, 4) + '-' + Copy(tTelNo, 7, 4);
else tTelNo := vTelNo;
end
else // 서울을 제외 한 전화번호
case Length(tTelNo) of
4: tTelNo := Copy(tTelNo, 1, 3) + '-' + Copy(tTelNo, 4, 1);
7: tTelNo := Copy(tTelNo, 1, 3) + '-' + Copy(tTelNo, 4, 3) + '-' + Copy(tTelNo, 7, 1);
10: tTelNo := Copy(tTelNo, 1, 3) + '-' + Copy(tTelNo, 4, 3) + '-' + Copy(tTelNo, 7, 4);
11: tTelNo := Copy(tTelNo, 1, 3) + '-' + Copy(tTelNo, 4, 4) + '-' + Copy(tTelNo, 8, 4);
else tTelNo := vTelNo;
end
else // 0으로 시작하지 않는 전화번호
case Length(tTelNo) of
4: tTelNo := Copy(tTelNo, 1, 3) + '-' + Copy(tTelNo, 4, 1);
8: tTelNo := Copy(tTelNo, 1, 4) + '-' + Copy(tTelNo, 5, 4);
else tTelNo := vTelNo;
end;
Result := tTelNo;
end;