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;
}

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-12-28 23:42:33

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

JavaScript判断输入的内容是否为空,应该注意的一点!

JavaScript 我们经常要判断一个输入框中是否输入了内容,如果未输入内容就要弹出提示框告诉用户未输入内容! 但是这里有一个问题,如果用户输入的是一个空格 或者是一些其它空字符,这时如果不注意,就达不到要求了! 下面我给我出一段JavaScript代码用来解决以上问题: Js代码   //提交查询内容 function formSubmit() { var condId = document.getElementById("searchProductText"); var text

练习:编写循环,让用户输入内容,判断输入的内容以alex开头的,则将该字符串加上_SB结尾

编写循环,让用户输入内容,判断输入的内容以alex开头的,则将该字符串加上_SB结尾 while True: user = input('请输入:') # 用户输入 if user.startswith('alex'): # 判断用户输入的内容以alex开头 print(user + 'SB') # 则在该字符串加上SB结尾 break 输出结果: 请输入:bbb 请输入:alex alexSB

判断输入的内容长度是否大于5

本文主要实现:判断输入的内容的长度是否大于5(ps:isinstance是python中自带函数,目的是判断对象类型) 代码: #!/usr/bin/env python# -*- coding:utf-8 -*-# author by lh def obj_len(arg): if isinstance(arg,str) or isinstance(arg,list) or isinstance(arg,tuple): if len(arg)>5: return True else: retu

js正则表达式密码验证必须包含数字和字母

写注册页面的时候需要这样的功能 一条正则表达式验证方式: /^(?=.*?[a-z)(?=.*>[A-Z])(?=.*?[0-9])[a-zA_Z0-9]{6,10}$/ 多条正则验证思路就是分开验证是否包含数字.字母.长度等限制条件 原文地址:http://blog.51cto.com/11016194/2320380

Java中判断某一字符串是否包含数字、字母和中文

在Java中判断某一字符串是否为纯英文.纯数字.英文和数字的组合等时,通常使用正则str.matches匹配,告诉这个字符串是否与给定的正则表达式匹配. 各种字符的unicode编码的范围: 汉字:[0x4e00,0x9fa5](或十进制[19968,40869]) 数字:[0x30,0x39](或十进制[48, 57]) 小写字母:[0x61,0x7a](或十进制[97, 122]) 大写字母:[0x41,0x5a](或十进制[65, 90]) import java.util.regex.M

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

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

判断输入的内容(汉字、英文字符、数字)简单方法

<div> <label>输入:<input id="input_txt" type="text"></label><br> <button id="add-btn" onclick="text()">判断</button> </div> function text() { var input = document.getEleme

C#正则表达式判断输入的是不是数字

1.函数 public static bool IsFloat(string str) { string regextext = @"^(-?\d+)(\.\d+)?$"; Regex regex = new Regex(regextext, RegexOptions.None); return regex.IsMatch(str.Trim()); } 2.调用 if (!IsFloat(textBox11.Text)) { MessageBox.Show("应该是一个数字&

判断输入的内容是否全是空格

//判断是否全是空格 - (BOOL)isEmpty:(NSString *) str { if (!str) { return YES; } else { NSCharacterSet *set = [NSCharacterSet whitespaceAndNewlineCharacterSet]; NSString *trimedString = [str stringByTrimmingCharactersInSet:set]; if ([trimedString length] == 0