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;
'삽질 > Delphi' 카테고리의 다른 글
[Delphi] 하위 폴더까지 한번에 생성하기 (0) | 2011.05.16 |
---|---|
[Delphi] 웹페이지 로딩 완료 체크하기 (0) | 2011.04.07 |
[Delphi] 문자 사이에서 숫자 추출 / 숫자 사이에서 문자 추출 (0) | 2011.04.05 |
[Delphi] 바탕화면 강제 새로고침 (2) | 2011.04.05 |
[Delphi] 문자수, 바이트수 (0) | 2011.04.05 |
댓글