2013-07-17 2 views
2

나는 내가 여기 바퀴를 재발 명하고있는 것처럼 느낀다.마스킹 텍스트 코드. 더 짧은 길?

if (maskedText.Length <= 3) 
{ 
    text = maskedText; 
} 
else 
{ 
    text = maskedText.Substring(0, 3) + "-"; 

    if (maskedText.Length <= 5) 
    { 
     text += maskedText.Substring(3, maskedText.Length - 3); 
    } 
    else 
    { 
     text += maskedText.Substring(3, 2) + "-" 
       + maskedText.Substring(5, maskedText.Length - 5); 
     if (text.Length > 11) 
     // Trim to 11 chars - this is all for SSN 
     text = text.Substring(0, 11); 

    } 
} 

내가 실버 라이트 사용자 지정 컨트롤을 위해 그것을 할 : 나는 디스플레이에 대한 사회 보장 번호의 형식을 문자열 삽입 대시을 할 수 있기를 바랍니다. 그럴 것입니다 개미 내장 라이브러리 또는 기능이 있다면 궁금해? 내가하지이 종속성을 추가 할 할 (다운로드 크기)

답변

0

당신이 어떤 대시를 삽입하기 만하면 ...

text = maskedText.Insert(5, "-").Insert(3, "-"); 

편집 : 확인이 위의 것보다 단지 조금 청소기 이 숫자 인 경우 코드는 ...

if (maskedText.Length > 9) 
     maskedText = maskedText.Substring(0, 9); 
    if (maskedText.Length > 5) 
     maskedText = maskedText.Insert(5, "-"); 
    if (maskedText.Length > 3) 
     maskedText = maskedText.Insert(3, "-"); 
    text = maskedText; 

당신이 할 수있는 ...하지만 불행하게도 문자열로이 작업을 수행하는 간단한 형식의 문이 없다. 당신이 유효성을 검사 ... 그것은 maskedText.Length와 시나리오를 처리하지 않는

String.Format("{0:000-00-0000}", ssnNumeric) 
+0

이 = 9! 내 코드 형식을 작동하지 않고 너무 빨리가는 ... 문자열 크기 – katit

+0

마우스 오른쪽을 기준으로 대시를 삽입 그 끈도. 내놔. – Kevin

+0

나는 내 방식보다 더 좋아. 감사! – katit