[스위프트3] 외국인 번호 체크

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
32
33
34
35
36
37
38
39
    /// 외국인 번호 체크
    ///
    /// - Parameters:
    ///   - front: 앞 6자리
    ///   - rear: 뒤 7자리
    /// - Returns:
    static func isForeigner(front: String, rear: String-> Bool{
        if front.length < 6 {
            return false
        }
        if rear.length < 7 {
            return false
        }
        var sum = 0
        if substring(text: rear, start: 0, end: 1!= "5" &&
            substring(text: rear, start: 0, end: 1!= "6" &&
            substring(text: rear, start: 0, end: 1!= "7" &&
            substring(text: rear, start: 0, end: 1!= "8" {
            return false
        }
        if Int(substring(text: rear, start: 1, end: 3))! % 2 != 0 {
            return false;
        }
        let full: String = front + rear
        for i in 0..<12 {
            sum += Int(substring(text: full, start: i, end: i+1))! * ((i % 8+ 2)
        }
        
        if (((11 - (sum % 11)) % 10 + 2) % 10 ) == Int(substring(text: full, start: 12, end: 13)) {
            return true;
        }
        
        return false
    }
cs

댓글

이 블로그의 인기 게시물

[SpringBoot] Mybatis 다중 Database Setting

[스위프트3] DateString을 기존 format에서 새로운 format으로 변경

[스위프트3] URLEncoding/Decoding