티스토리 뷰

반응형

앞 2자리, 뒤 2자리 만 보이게

    //이메일 마스킹 ( test12@test.com -> te**12@test.com )
    func maskEmail() -> String {
        
        let components = self.components(separatedBy: "@")
        
        guard let first = components.first,
              let last = components.last else { return self }
        
        let mask = first.enumerated().map {
            //첫번째 자리, 두번째 자리, 마지막 앞자리, 마지막 자리만 보이게
            return [0, 1, first.count - 2, first.count - 1].contains($0.offset) ? $0.element : "*"
        }
        
        return String(mask) + "@" + last
    }



앞 4자리 만 보이게

    //이메일 마스킹2 ( test12@test.com -> test**@test.com )
    var maskEmail2: String {
        
        let components = self.components(separatedBy: "@")
        
        guard let first = components.first,
              let last = components.last else { return self }
        
        let mask = first.enumerated().map { index, char in
            //앞 4자리만 보이게
            return Array(0..<4).contains(index) ? char : "*"
        }
        
        return String(mask) + "@" + last
    }











전체 코드

import UIKit

class ViewController: UIViewController {

    override func viewDidLoad() {
        super.viewDidLoad()
        
        let email = "test12@test.com"
        
        print(email)
        print(email.maskEmail())
        print(email.maskEmail2)
    }
    
}


extension String {
    
    //이메일 마스킹 ( test12@test.com -> te**12@test.com )
    func maskEmail() -> String {
        
        let components = self.components(separatedBy: "@")
        
        guard let first = components.first,
              let last = components.last else { return self }
        
        let mask = first.enumerated().map {
            //첫번째 자리, 두번째 자리, 마지막 앞자리, 마지막 자리만 보이게
            return [0, 1, first.count - 2, first.count - 1].contains($0.offset) ? $0.element : "*"
        }
        
        return String(mask) + "@" + last
    }
    
    //이메일 마스킹2 ( test12@test.com -> test**@test.com )
    var maskEmail2: String {
        
        let components = self.components(separatedBy: "@")
        
        guard let first = components.first,
              let last = components.last else { return self }
                
        let mask = first.enumerated().map { index, char in
            //앞 4자리만 보이게
            return Array(0..<4).contains(index) ? char : "*"
        }
        
        return String(mask) + "@" + last
    }
    
}

결과 Debug area




민감한 정보 숨김
개인정보 가리기
Privacy Data
ID PW 가림
Password hidden

비밀번호 패스워드 별표시

iOS

Swift
Xcode

반응형
댓글
300x250
반응형
최근에 올라온 글
최근에 달린 댓글
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
Total
Today
Yesterday