目前这些方面的判断主要是用了正则表达式

手机号的判断,目前主要是长度、均是数字,支持的号段由于第三方通讯比如京东通讯,小米通讯等支持的号段挺多,

有171,170,135,147等等,所以号段限制简单即可。

@"^((13[0-9])|(147)|(17[0-9])|(15[^4,\\D])|(18[0,0-9]))\\d{8}$"

其实手机号格式主要是为了短信验证,如果更简单点保证11位数字即可。

密码验证的条件比较多,除了位数,是否包含空格(用string方法单独判断空格),有个可能是符号啊,正角半角啊。至少包含两种字符啊。

NSString * regex = @"^(?![\\d]+$)(?![a-zA-Z]+$)(?![^\\da-zA-Z]+$).{6,18}$";
        NSPredicate *pred = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", regex];
       BOOL isMatch = [pred evaluateWithObject:self.passwordField.currentString];
        if (isMatch == NO) { // 不符合上面的正则,提示
          
          请输入6-18位字符。仅支持数字、大写字母、小写字母和特殊符号,且至少包含其中2种
           
            return;
      }

但密码支持的较多字符时,有时可以单独判断密码符合  密码必须为unicode 0~127

NSString * regex = @"^.*[\\u0000-\\u007f]{6,18}.*$";
            NSPredicate *pred = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", regex];
            BOOL isMatch = [pred evaluateWithObject:self.passwordField.currentString];
            if (isMatch ==NO) {
                
                [BlackShowView alertViewShowInContentView:self.contentView message:@"请不要输入过于特殊的字符作为密码"];
                
                return;
            }

邮箱的判断比较简单

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

身份证号

@"^(\\d{14}|\\d{17})(\\d|[xX])$";

还有有个比较常用的是判断是否输入了中文(注意此时是YES的状态,及不能包含中文)

// 是否包含中文^.*[\u4e00-\u9fa5].*$
        {
            NSString * regex = @"^.*[\u4e00-\u9fa5].*$";
            NSPredicate *pred = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", regex];
            BOOL isMatch = [pred evaluateWithObject:self.accountField.currentString];
            if (isMatch ==YES) {
                
                [BlackShowView alertViewShowInContentView:self.contentView message:@"账号不能包含中文"];
                
                return;
            }
        
        
        }

转载于:https://www.cnblogs.com/LiuChengLi/p/5179980.html

iOS开发——手机号,密码,邮箱,身份证号,中文判断相关推荐

  1. vue的element组件校验-手机号/电话号\邮箱\身份证号

    <template><div><el-form:model="ruleForm":rules="rules"ref="r ...

  2. vue表单验证(用户名、密码、身份证号、中文姓名、手机号、邮箱)

    vue表单验证(用户名.密码.身份证号.中文姓名.手机号.邮箱) new Vue({el: '#register',data: function() {// 验证邮箱let checkEmail = ...

  3. java 手机号脱敏,身份证号脱敏 工具类

    java 手机号脱敏,身份证号脱敏 工具类 import org.apache.commons.lang3.StringUtils;/*** * @title: 脱敏工具类* @author: wll ...

  4. IOS开发笔记之推广安装(用网页判断是否安装App)

    IOS开发笔记之推广安装(用网页判断是否安装App) 在做App推广的时候,我们经常会用到网页链接下载,亦或是一张二维码,最常见的做法就是将App在iTunes中的下载链接嵌入,当用户扫描或者点击网页 ...

  5. hive自定义函数-身份证号合法性判断

    hive自定义函数-身份证号合法性判断 简要 代码 简要 身份证号合法性判断: 若为18位身份证号: 1.第18位数字,应该在身份证号最后一位校验位数字中 2.前17为数字分别乘以对应的加权因子,累加 ...

  6. 微信小程序常用表单校验方法(手机号校验、身份证号(严格和非严格校验、验证码六位数字校验))

    一个js文件专门放校验方法 方法记得导出 util.js function isPhone(value) {if (!/^1(3|4|5|7|8)\d{9}$/.test(value)) {retur ...

  7. python中正则表达式来验证QQ号,手机号,邮箱号,身份证号

    ''' QQ的特征: 1.最少5位,最长11位 2.5位的是10001起始 3.一般以QQ:/qq:开始 ''' #先导入re模块 import re def checkQQ(str):# 正则表达式 ...

  8. 手机号座机号身份证号的规则

    1身份证号: 一共18位.15位的是老身份证号,已弃用,不考虑. 前6位为中国地址区编码,中间8位是出生年月日,接下来3位是同一区域同一出生年月日的人的编号,奇数为男,偶数为女.最后1位是校验码. 中 ...

  9. js身份证号正则判断

    项目中会遇到验证身份证号是否正确的需求 封装成公用方法: export default function IdentityCodeValid(code) {const city = {11: '北京' ...

最新文章

  1. Oracle经典教程学习笔记
  2. 使用CXF 2.7.5出现的java.lang.RuntimeException: Cannot create a secure XMLInputFactory错误解决...
  3. alchemy php,Python下SQLAlchemy的简单介绍
  4. CML更新 | 新增百度小程序、支付宝小程序
  5. 使用类似Lambda的语法切换为Java中的表达式
  6. linux虚拟机 dev sda2,虛擬機linux下 /dev/sda2 滿了怎么辦,測試用過,真實可行
  7. Python检测U盘插入、自动复制文件并写入新文件
  8. MyBatis的环境搭建(图文)
  9. android小米推送,Android集成小米推送
  10. HiTool烧写Hi3536操作记录
  11. python花瓣飘零_Python 爬虫: 抓取花瓣网图片
  12. windows eclipse超详细安装教程
  13. 《巴菲特法则》书中的精髓:用好巴菲特企业前景投资法则,股票投资稳赚不赔。
  14. gz是什么意思饭圈_网上看不懂的字母缩写!知道Xs是什么意思吗?不是尺寸!...
  15. 计算机老出现无法响应,电脑经常出现假死或未响应怎么处理
  16. 浅谈To B与To C的区别
  17. python3.7运行 skimage 报错ImportError: DLL load failed:找不到指定模块
  18. 反思学习,做更好的自己
  19. PTA1018 锤子剪刀布
  20. python爬取网易云音乐飙升榜音乐_python爬取网易云音乐热歌榜 python爬取网易云音乐热歌榜实例代码...

热门文章

  1. 在eclipse上Checkstyle的安装和使用
  2. gridview汇出EXCEL (ExportGridViewToExcel(dt, HttpContext.Current.Response);)
  3. android菜鸟学习笔记27----Fragment的简单使用
  4. Flutter入门三部曲(3) - 数据传递/状态管理 | 掘金技术征文
  5. Python 工具——Anaconda+Pycharm 的安装过程
  6. 14 Java NIO vs IO-翻译
  7. Oracle常见操作汇总(转)
  8. paramiko在windows上的安装和使用
  9. JavaScript中Window.event详解
  10. [MongoDB]db.serverStatus()命令详解