//
//  StringExt.swift
//  ExtensionKit
//
//  Created by FFIB on 2017/9/20.
//  Copyright © 2017年 FFIB. All rights reserved.
//

import Foundation

//MARK: regular expression
extension String {
    public var isPhoneNumber: Bool {
        let pattern = "^1+[3578]+\\d{9}"
        return regularExpression(pattern: pattern)
    }
    
    public var isIPAdress: Bool {
        let pattern = "/^(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$/"
        return regularExpression(pattern: pattern)
    }
    
    public var isHex: Bool {
        let pattern = "/^#?([a-f0-9]{6}|[a-f0-9]{3})$/"
        return regularExpression(pattern: pattern)
    }
    
    public var isEmail: Bool {
        let pattern = "^([a-z0-9_\\.-]+)@([\\da-z\\.-]+)\\.([a-z\\.]{2,6})$"
        return regularExpression(pattern: pattern)
    }
    
    public func regularExpression(pattern: String) -> Bool{
        let matcher: NSRegularExpression
        do {
            matcher = try NSRegularExpression.init(pattern: pattern, options: .caseInsensitive)
        }catch {
            return false
        }
        return matcher.matches(in: self, options: [], range: NSRange(location: 0, length: count)).count > 0
    }
}