Nav apraksta

StringExt.swift 1.2KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. //
  2. // StringExt.swift
  3. // PaiaiDataKit
  4. //
  5. // Created by FFIB on 2017/9/20.
  6. // Copyright © 2017年 FFIB. All rights reserved.
  7. //
  8. import Foundation
  9. //MARK: regular expression
  10. extension String {
  11. public var isPhoneNumber: Bool {
  12. let pattern = "^1+[3578]+\\d{9}"
  13. return regularExpression(pattern: pattern)
  14. }
  15. public var isIPAdress: Bool {
  16. 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]?)$/"
  17. return regularExpression(pattern: pattern)
  18. }
  19. public var isHex: Bool {
  20. let pattern = "/^#?([a-f0-9]{6}|[a-f0-9]{3})$/"
  21. return regularExpression(pattern: pattern)
  22. }
  23. public var isEmail: Bool {
  24. let pattern = "^([a-z0-9_\\.-]+)@([\\da-z\\.-]+)\\.([a-z\\.]{2,6})$"
  25. return regularExpression(pattern: pattern)
  26. }
  27. public func regularExpression(pattern: String) -> Bool{
  28. let matcher: NSRegularExpression
  29. do {
  30. matcher = try NSRegularExpression.init(pattern: pattern, options: .caseInsensitive)
  31. }catch {
  32. return false
  33. }
  34. return matcher.matches(in: self, options: [], range: NSRange(location: 0, length: count)).count > 0
  35. }
  36. }