zoukankan      html  css  js  c++  java
  • [Xcode 实际操作]九、实用进阶-(5)使用正则表达式判断格式是否正确

    目录:[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 }
  • 相关阅读:
    sql语言复习:学院-学生-教师-课程-学习-授课表上的一些操作
    JZOJ6358. 【NOIP2019模拟2019.9.15】小ω的仙人掌
    JZOJ6353. 【NOIP2019模拟】给(ca)
    【CSP-S2019模拟】09.13比赛总结
    【CSP-S2019模拟】09.11比赛总结
    JZOJ6341. 【NOIP2019模拟2019.9.4】C
    JZOJ6344. 【NOIP2019模拟2019.9.7】Huge Counting
    JZOJ6343. 【NOIP2019模拟2019.9.7】Medium Counting
    【随机编号】【 2019 Multi-University Training Contest 8】1008.Andy and Maze
    【吉如一线段树】JZOJ6270. 【省赛模拟8.10】序列
  • 原文地址:https://www.cnblogs.com/strengthen/p/10085312.html
Copyright © 2011-2022 走看看