import UIKit

class Validate: NSObject {

//邮箱、手机验证

enum ValidatedType {

case Email

case PhoneNumber

}

func ValidateText(validatedType type: ValidatedType, validateString: String) -> Bool {

do {

let pattern: String

if type == ValidatedType.Email {

pattern = "^([a-z0-9_\\.-]+)@([\\da-z\\.-]+)\\.([a-z\\.]{2,6})$"

}

else {

pattern = "^1[0-9]{10}$"

}

let regex: NSRegularExpression = try NSRegularExpression(pattern: pattern, options: NSRegularExpressionOptions.CaseInsensitive)

let matches = regex.matchesInString(validateString, options: NSMatchingOptions.ReportProgress, range: NSMakeRange(0, validateString.characters.count))

return matches.count > 0

}

catch {

return false

}

}

func EmailIsValidated(vStr: String) -> Bool {

return ValidateText(validatedType: ValidatedType.Email, validateString: vStr)

}

func PhoneNumberIsValidated(vStr: String) -> Bool {

return ValidateText(validatedType: ValidatedType.PhoneNumber, validateString: vStr)

}

}

第二种写法:

///邮箱认证判断

func lx_isMailBox() -> Bool {

let emailRegex = "[A-Z0-9a-z._%+-]+@[A-Za-z0-9.-]+\\.[A-Za-z]{2,4}"

let emailTest = NSPredicate.init(format: "SELF MATCHES %@", emailRegex)

return emailTest.evaluateWithObject(self)

}

///手机号判断

func lx_isMobilPhoneNumber() -> Bool {

if self.lengthOfBytesUsingEncoding(NSUTF8StringEncoding) != 11 {

return false

}else{

/**

* 移动号段正则表达式

*/

let CM_NUM = "^((13[4-9])|(147)|(15[0-2,7-9])|(178)|(18[2-4,7-8]))\\d{8}|(1705)\\d{7}$"

/**

* 联通号段正则表达式

*/

let CU_NUM = "^((13[0-2])|(145)|(15[5-6])|(176)|(18[5,6]))\\d{8}|(1709)\\d{7}$"

/**

* 电信号段正则表达式

*/

let CT_NUM = "^((133)|(153)|(177)|(18[0,1,9]))\\d{8}$"

let pred1 = NSPredicate.init(format: "SELF MATCHES %@", CM_NUM)

let isMatch1 = pred1.evaluateWithObject(self)

let pred2 = NSPredicate.init(format: "SELF MATCHES %@", CU_NUM)

let isMatch2 = pred2.evaluateWithObject(self)

let pred3 = NSPredicate.init(format: "SELF MATCHES %@", CT_NUM)

let isMatch3 = pred3.evaluateWithObject(self)

if (isMatch1 || isMatch2 || isMatch3) {

return true;

}

}

return false

}

swift邮箱手机验证的更多相关文章

  1. Java实现注册邮箱激活验证

    邮件发送servelet实现 package com.xbs.register.main; import java.io.IOException;import java.util.Date;impor ...

  2. 一个基于POP3协议进行邮箱账号验证的类

    最近老陈要针对企业邮箱做一些开发,以对接企业OA神马的,但企业邮箱唯独没有开放账号密码验证功能,很恼火!不得已,翻出早些年的Asp代码改编成了C#类,实现了一个C#下的通过POP3协议进行邮箱账号验证 ...

  3. Laravel validate 500异常 添加手机验证,中文验证与Validator验证的“半个”生命周期

    今天来讲一下,Lumen的Validator函数 1 2 3 4 5 6 7 8 9 10 11 use Validator;   ...   Class .. {   public function ...

  4. Java注册帐号邮箱激活验证实现

    Java注册帐号邮箱激活验证实现 1.需要加入发送邮件的mail.jar: http://www.oracle.com/technetwork/java/javamail/index-138643.h ...

  5. laravel5.5 自定义验证规则——手机验证RULE

    相信很多小伙伴和我一样烦恼,laravel没有自带手机号的验证,每次验证手机号都要写正则这类的规则,每次都是repeat yourself!违背了编码的一个原则,就是Don't repeat your ...

  6. Lumen开发:添加手机验证,中文验证与Validator验证的“半个”生命周期

    版权声明:本文为博主原创文章,未经博主允许不得转载. 添加手机验证方法可直接看这里:https://www.cnblogs.com/cxscode/p/9609828.html 今天来讲一下,Lume ...

  7. ecshop注册用户增加手机验证功能

    1.去掉“用户名”注册 a.去掉提交 user_passport.dwt页面去掉 <input name="username" type="text" s ...

  8. PHP实现邮箱验证码验证功能

    *文章来源:https://blog.egsec.cn/archives/623  (我的主站) *本文将主要说明:PHP实现邮箱验证码验证功能,通过注册或登录向用户发送身份确认验证码,并通过判断输入 ...

  9. javascript,html,正则表达式,邮箱密码验证

    <!DOCTYPE html> <html>     <head>         <meta charset="utf-8">   ...

随机推荐

  1. C#程序猿电脑重装记录

    最近比较空了,闲的手痒,将自己的笔记本进行了重装,之前每次重装都没有记录,这次将本次重装过程记录下来,以便下次参考 1 首先不用说了WIN7旗舰版装好,驱动装好 2 开启Administrator用户 ...

  2. linux 学习随笔-磁盘管理

    1:df 用于查看已挂载磁盘的容量信息 -i 查看inodes使用情况 -h 以合适的单位显示 -k -m 分别以k M单位显示 2:du 查看某个文件或者目录占用的空间 du [-abckmsh] ...

  3. form.submit() not a function的元凶

    今天晚上学习jquery form plugin时,在明白了该插件的用法时, (1)该插件是将form的HTTP请求 改为AJax请求. (2)支持像jQuery.ajax(options)一样 的o ...

  4. 关于C语言中的位域

    有些信息在存储时,并不需要占用一个完整的字节, 而只需占几个或一个二进制位.例如在存放一个开关量时,只有0和1 两种状态,用一位二进位即可.为了节省存储空间,并使处理简便,C语言提供了一种数据结构,称 ...

  5. [转]jquery开发自定义的插件总结

    本文转自:http://www.cnblogs.com/Jimmy009/archive/2013/01/17/jquery%E6%8F%92%E4%BB%B6.html 前几天在玩jquery,今天 ...

  6. C#学习笔记-icon托盘图标的简单知识

    在做整个类似QQ的毕业设计中,有一个小图标把我给难了一阵子,就是托盘小图标

  7. 笔记:html 拾遗之一

    html 拾遗之一 今天翻了下w3schools.com 把忘掉的语法记一下(仅常用但是不熟的部分) img alt 属性,当图片无法显示时可显示alt属性的文字 br 换行 < html la ...

  8. 【转】最长回文子串的O(n)的Manacher算法

    Manacher算法 首先:大家都知道什么叫回文串吧,这个算法要解决的就是一个字符串中最长的回文子串有多长.这个算法可以在O(n)的时间复杂度内既线性时间复杂度的情况下,求出以每个字符为中心的最长回文 ...

  9. AC日记——配对碱基链 openjudge 1.7 07

    07:配对碱基链 总时间限制:  1000ms 内存限制:  65536kB 描述 脱氧核糖核酸(DNA)由两条互补的碱基链以双螺旋的方式结合而成.而构成DNA的碱基共有4种,分别为腺瞟呤(A).鸟嘌 ...

  10. 扩展Unity的方法

    写更少代码的需求 当我们重复写一些繁杂的代码,或C#的一些方法,我们就想能不能有更便捷的方法呢?当然在unity中,我们对它进行扩展. 对unity的类或C#的类进行扩展有以下两点要注意: 1.这个类 ...