IOS中用正则表达式判断输入的内容为8-16位且同时包含数字和字母

今天在项目中需要用到判断用户输入的用户名长度为8-16位且同时包含数字和字母,在网上搜了一下正则表达式的用法,然后参考这篇blog,完美解答了问题。记录一下:

密码有如下要求:由数字和字母组成,并且要同时含有数字和字母,且长度要在8-16位之间。

如何分析需求?拆分!这就是软件设计的一般思路了。于是乎,拆分需求如下:
1,不能全部是数字
2,不能全部是字母
3,必须是数字或字母
只要能同时满足上面3个要求就可以了,写出来如下:


1


^(?![0-9]+$)(?![a-zA-Z]+$)[0-9A-Za-z]{8,16}$

分开来注释一下:
^ 匹配一行的开头位置
(?![0-9]+$) 预测该位置后面不全是数字
(?![a-zA-Z]+$) 预测该位置后面不全是字母
[0-9A-Za-z] {8,16} 由8-16位数字或这字母组成
$ 匹配行结尾位置

注:(?!xxxx) 是正则表达式的负向零宽断言一种形式,标识预该位置后不是xxxx字符。

用在iOS中的代码:

**
 *  @author KaKa, 15-07-31 14:07:02
 *
 *  判断用户输入的密码是否符合规范,符合规范的密码要求:
    1. 长度大于8位
    2. 密码中必须同时包含数字和字母
 */
+(BOOL)judgePassWordLegal:(NSString *)pass{
    BOOL result = false;
    if ([pass length] >= 8){
        // 判断长度大于8位后再接着判断是否同时包含数字和字符
        NSString * regex = @"^(?![0-9]+$)(?![a-zA-Z]+$)[0-9A-Za-z]{8,16}$";
        NSPredicate *pred = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", regex];
        result = [pred evaluateWithObject:pass];
    }
    return result;
}

关于更多的正则表达式的写法,参见这篇blog:

http://www.cnblogs.com/zxin/archive/2013/01/26/2877765.html

时间: 2024-08-08 16:31:37

IOS中用正则表达式判断输入的内容为8-16位且同时包含数字和字母的相关文章

求一个正则表达式(要求字符串长度6到12位,必须包含数字和字母,在此基础上可以包含其他任意字符)

问题描述 求一个正则表达式(要求字符串长度6到12位,必须包含数字和字母,在此基础上可以包含其他任意字符) (要求字符串长度6到12位,必须包含数字和字母,在此基础上可以包含其他任意字符) 解决方案 ^(?![^a-zA-Z]+$)(?!D+$).{6,12}$

IOS正则表达式判断输入类型(整理)

在开发过程中,有时需要对用户输入的类型做判断,最常见是在注册页面即用户名和密码,代码整理如下: 只能为中文 -(BOOL)onlyInputChineseCharacters:(NSString*)string{ NSString *zhString = @"[\u4e00-\u9fa5]+"; NSPredicate *predicate = [NSPredicate predicateWithFormat:@"SELF MATCHES %@",zhString]

iOS 委托与文本输入(内容根据iOS编程编写)_IOS

•文本框(UITextField) 本章节继续编辑 JXHypnoNerd .文件地址 . 首先我们继续编辑 JXHypnosisViewController.m 修改 loadView 方法,向 view 中添加一个 UITextField 对象: #import "JXHypnosisViewController.h" #import "JXHypnosisView.h" @interface JXHypnosisViewController () @end @

C#正则表达式判断输入日期格式是否正确_正则表达式

本文将介绍一段实例代码,来讲解利用正则表达式使C#判断输入日期格式是否正确的方法.希望这段代码能对大家有所帮助.  通常我们在用C#编写系统程序或者Web开发时,都会遇到需要验证输入的字符串是否是日期的情况,下面为大家介绍一种非常全面的用正则表达式验证日期的方法:  c 正则表达式日期代码一: /// <summary> /// 是否为日期型字符串 /// </summary> /// <param name="StrSource">日期字符串(20

C#正则表达式判断输入日期格式是否正确

本文将介绍一段实例代码,来讲解利用正则表达式使C#判断输入日期格式是否正确的方法.希望这段代码能对大家有所帮助. 通常我们在用C#编写系统程序或者Web开发时,都会遇到需要验证输入的字符串是否是日期的情况,下面为大家介绍一种非常全面的用正则表达式验证日期的方法: c 正则表达式日期代码一: /// <summary> /// 是否为日期型字符串 /// </summary> /// <param name="StrSource">日期字符串(2008

用正则表达式判断输入的数字是否合法的例子

<html><head>    <title>Untitled</title></head><body><?php$in="2344";if(ereg("^(-{0,1}|+{0,1})[0-9]+(.{0,1}[0-9]+)$",$in))    echo "Ok!";else    echo "Sorry,Please input again!"

sql 判断字符串中是否包含数字和字母的方法_MsSql

判断是否含有字母 select PATINDEX('%[A-Za-z]%', 'ads23432')=0 (如果存在字母,结果>1) 判断是否含有数字 PATINDEX('%[0-9]%', '234sdf')=0 (如果存在数字,结果>1) 以上是小编为您精心准备的的内容,在的博客.问答.公众号.人物.课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索字符串 , 数字 字母 js判断字符串包含字母.判断字符串包含字母.mssql 字符串包含.js 字符串包含判断.js判断包含某个字

sql 判断字符串中是否包含数字和字母的方法

判断是否含有字母 select PATINDEX('%[A-Za-z]%', 'ads23432')=0 (如果存在字母,结果>1) 判断是否含有数字 PATINDEX('%[0-9]%', '234sdf')=0 (如果存在数字,结果>1)

使用正则表达式判断 字符串只能包含 中英文,数字,还有‘-’,‘_’,求这个正则表达式。

问题描述 使用正则表达式判断 字符串只能包含 中英文,数字,还有'-','_',求这个正则表达式. 使用正则表达式判断 字符串只能包含 中英文,数字,还有'-','_',求这个正则表达式. 解决方案 ^[-u4e00-u9fa5w]+$ new RegExp("^[-u4e00-u9fa5w]+$"); 解决方案二: u4e00-u9fa5 表示汉字 w 表示英文,数字,下划线 [-u4e00-u9fa5w]+ 解决方案三: PHP中正则判断如下 /^[x{4e00}-x{9fa5}w