Guest User

Untitled

a guest
Oct 17th, 2017
66
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.66 KB | None | 0 0
  1. //
  2. // main.swift
  3. // Reg
  4. //
  5. // Created by KatagiriSo on 2017/10/17.
  6. // Copyright ยฉ 2017ๅนด RodhosSoft. All rights reserved.
  7. //
  8.  
  9. import Foundation
  10.  
  11.  
  12. extension NSString {
  13. func selfRange() -> NSRange {
  14. let str = self as String
  15. if str.isEmpty {
  16. return NSRange(location: 0, length: 0)
  17. }
  18.  
  19. return self.range(of: self as String)
  20. }
  21. }
  22.  
  23. extension String {
  24. func selfRange() -> NSRange {
  25. return (self as NSString).selfRange()
  26. }
  27.  
  28. func firstMatch(pattern:String, options:NSRegularExpression.Options = [], matchOptions:NSRegularExpression.MatchingOptions = [] ) -> NSTextCheckingResult? {
  29.  
  30. guard let reg = try? NSRegularExpression(pattern: pattern, options:options) else {
  31. return nil
  32. }
  33. return reg.firstMatch(in: self,
  34. options: matchOptions,
  35. range: self.selfRange() )
  36. }
  37.  
  38. func isInteger() -> Bool {
  39. return firstMatch(pattern: "[0-9]*")?.range.toRange() == self.selfRange().toRange()
  40. }
  41. }
  42.  
  43. extension NSTextCheckingResult {
  44. func show() {
  45. print("\(self.range.location) - \(self.range.length)")
  46. }
  47. }
  48.  
  49. func integerTest(text:String) {
  50. print(" \(text) ... \(text.isInteger())")
  51. }
  52.  
  53. "12345".firstMatch(pattern: "[0-9]*")?.show()
  54. "12a345".firstMatch(pattern: "[0-9]*")?.show()
  55. "a12345".firstMatch(pattern: "[0-9]*")?.show()
  56.  
  57.  
  58. integerTest(text: "1928491")
  59. integerTest(text: "1934712947239851209452398")
  60. integerTest(text: "1293481209348120934812094a123041203984013294")
  61. integerTest(text: "")
  62. integerTest(text: " 120312903129038210")
  63. integerTest(text: "1293812 2103123")
  64. integerTest(text: "\n23")
Add Comment
Please, Sign In to add comment