为有牺牲多壮志,敢教日月换新天。

[Xcode 实际操作]九、实用进阶-(5)使用正则表达式判断格式是否正确

热烈欢迎,请直接点击!!!

进入博主App Store主页,下载使用各个作品!!!

注:博主将坚持每月上线一个新app!!!

目录:[Swift]Xcode实际操作

本文将演示使用正则表达式判断邮箱的格式是否正确。

在项目导航区,打开视图控制器的代码文件【ViewController.swift】

 1 import UIKit
 2 
 3 //创建一个结构体,用于实现正则表达式的检测
 4 struct RegexHelper
 5 {
 6     //Swift并没有提供处理正则表达式的类,
 7     //本文将使用OC正则表达式类,进行正则表达式的检测
 8     let regex: NSRegularExpression?
 9     
10     //对结构体进行初始化
11     //并传入一个字符串参数,作为正则表达式
12     init(_ pattern: String)
13     {
14         //添加一个异常捕捉语句,用来执行正则表达式的匹配工作
15         do
16         {
17             //创建一个正则表达式,并不对大小写进行区分
18             regex = try NSRegularExpression(pattern: pattern,
19                     options: NSRegularExpression.Options.caseInsensitive)
20         }
21         catch
22         {
23             //如果正则表达式创建失败,则将正则表达式对象置空
24             regex = nil
25         }
26     }
27     
28     //创建一个方法,用来执行正则表达式的检测工作,并返回一个布尔结果
29     func match(_ input: String) -> Bool
30     {
31         //开始对字符串进行正则表达式的检测
32         if let matches = regex?.matches(in: input,
33             options: .reportProgress,
34             range: NSMakeRange(0, input.lengthOfBytes(using: String.Encoding.utf8)))
35         {
36             //比较在字符串中,匹配正则表达式的位置是否大于0。
37             //以判断字符串与正则表达式是否匹配。
38             return matches.count > 0
39         }
40         else
41         {
42             //如果字符串不匹配正则表达式,则返回否的布尔结果。
43             return false
44         }
45     }
46 }
47 
48 class ViewController: UIViewController {
49 
50     override func viewDidLoad() {
51         super.viewDidLoad()
52         // Do any additional setup after loading the view, typically from a nib.
53         
54         //创建一个字符串作为正则表达式,正则表达式的其他格式,请自行搜索
55         let pattern = "^([a-z0-9_\\.-]+)@([\\da-z\\.-]+)\\.([a-z\\.]{2,6})$"
56         //初始化一个正则表达式结构体,以检测字符串是否匹配正则表达式。
57         let matcher = RegexHelper(pattern)
58         //创建一个字符串,用来检测此字符串的邮箱,是否符合正确的邮箱格式
59         let result = "newsagency@163.com"
60         
61         //调用结构体对象的匹配方法,检测邮箱格式是否正确。
62         if matcher.match(result)
63         {
64             //如果格式正确,在控制台打印输出日志
65             print("It's an email.")
66         }
67         else
68         {
69             //如果格式不正确,则在控制台打印输出日志信息。
70             print("It's not an email.")
71         }
72     }
73 
74     override func didReceiveMemoryWarning() {
75         super.didReceiveMemoryWarning()
76         // Dispose of any resources that can be recreated.
77     }
78 }

 

posted @ 2018-12-07 21:19  为敢技术  阅读(228)  评论(0编辑  收藏  举报