ios 分章节 正则 - CSDN
  • IOS 常用的正则表达式

    2018-07-20 16:06:35
    校验电话号码 + (BOOL)validateContactNumber:(NSString *)mobileNum{ NSString * phoneNum =@"^((13[0-9])|(14[5,7,9])|(15[0-3,5-9])|(17[0,3,5-8])|(18[0-9])|166|198|199|(147))\\d{8}$"...
    1. 校验电话号码
      + (BOOL)validateContactNumber:(NSString *)mobileNum{
          
          NSString * phoneNum =@"^((13[0-9])|(14[5,7,9])|(15[0-3,5-9])|(17[0,3,5-8])|(18[0-9])|166|198|199|(147))\\d{8}$";
          
          NSPredicate *regextestmobile = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", phoneNum];
      
          if([regextestmobile evaluateWithObject:mobileNum] == YES){
              return YES;
          }else{
              return NO;
          }
      }

       

    2. 验证英文和数字和_.

      + (BOOL)validateEnglishAndDigital:(NSString *)text{
          
          NSString *chinasRegex = @"^[A-Za-z0-9._]+$";
          
          NSPredicate *chinasTest = [NSPredicate predicateWithFormat:@"SELF MATCHES %@",chinasRegex];
          
          return [chinasTest evaluateWithObject:text];
      }

       

    3.     验证中文英文数字_-
      + (BOOL)validateChineseAndEnglishAndDigital:(NSString *)text
      {
          
          NSString *chinasRegex = @"^[\u4E00-\u9FA5A-Za-z0-9._ -]+$";
          
          NSPredicate *chinasTest = [NSPredicate predicateWithFormat:@"SELF MATCHES %@",chinasRegex];
          
          return [chinasTest evaluateWithObject:text];
          
      }

       

    4. 验证表情

      
      + (BOOL)stringContainsEmoji:(NSString *)string
      {
          __block BOOL returnValue = NO;
          
          [string enumerateSubstringsInRange:NSMakeRange(0, [string length])
                                     options:NSStringEnumerationByComposedCharacterSequences
                                  usingBlock:^(NSString *substring, NSRange substringRange, NSRange enclosingRange, BOOL *stop) {
                                      const unichar hs = [substring characterAtIndex:0];
                                      if (0xd800 <= hs && hs <= 0xdbff) {
                                          if (substring.length > 1) {
                                              const unichar ls = [substring characterAtIndex:1];
                                              const int uc = ((hs - 0xd800) * 0x400) + (ls - 0xdc00) + 0x10000;
                                              if (0x1d000 <= uc && uc <= 0x1f77f) {
                                                  returnValue = YES;
                                              }
                                          }
                                      } else if (substring.length > 1) {
                                          const unichar ls = [substring characterAtIndex:1];
                                          if (ls == 0x20e3) {
                                              returnValue = YES;
                                          }
                                      } else {
                                          if (0x2100 <= hs && hs <= 0x27ff) {
                                              returnValue = YES;
                                          } else if (0x2B05 <= hs && hs <= 0x2b07) {
                                              returnValue = YES;
                                          } else if (0x2934 <= hs && hs <= 0x2935) {
                                              returnValue = YES;
                                          } else if (0x3297 <= hs && hs <= 0x3299) {
                                              returnValue = YES;
                                          } else if (hs == 0xa9 || hs == 0xae || hs == 0x303d || hs == 0x3030 || hs == 0x2b55 || hs == 0x2b1c || hs == 0x2b1b || hs == 0x2b50) {
                                              returnValue = YES;
                                          }
                                      }
                                  }];
          
          return returnValue;
      }

       

    5. 验证邮箱

      
      + (BOOL)isValidEmail:(NSString *)email
      {
          NSString *regex =@"^[a-zA-Z0-9_-]+@[a-zA-Z0-9_-]+(\\.[a-zA-Z0-9_-]+)+$";
          
          NSPredicate *emailTest = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", regex];
          
          return [emailTest evaluateWithObject:email];
      
      }

       

    6. 验证数字
      + (BOOL)validateNumber:(NSString *)text
      {
          
          NSString *chinasRegex = @"^[0-9]*$";
          
          NSPredicate *chinasTest = [NSPredicate predicateWithFormat:@"SELF MATCHES %@",chinasRegex];
          
          return [chinasTest evaluateWithObject:text];
          
      }

       

    展开全文
  • 博文转自:zhaojinqiang12的博客-iOS中的正则表达式运用,更加详细的内容请关注以上博文Thanks()什么是正则表达式 正则表达式,又称正规表示法,是对字符串操作的一种逻辑公式。正则表达式可以检测给定的字符串是否...

    博文转自:zhaojinqiang12的博客-iOS中的正则表达式运用,更加详细的内容请关注以上博文Thanks()

    什么是正则表达式

    • 正则表达式,又称正规表示法,是对字符串操作的一种逻辑公式。正则表达式可以检测给定的字符串是否符合我们定义的逻辑,也可以从字符串中获取我们想要的特定部分。它可以迅速地用极简单的方式达到字符串的复杂控制。


    正则表达式的语法

    特殊符号^和$

    他们的作用是分别指出一个字符串的开始和结束。

    • “^one”:表示所有以’one’开始的字符串(’one cat’,’one123’)类似- (BOOL)hasPrefix:(NSString *)aString.
        
    • “a dog$” :表示所以以”a dog”结尾的字符串(’it is a dog’)类似- (BOOL)hasSuffix:(NSString *)aString.

    • “^apple$” : 表示开始和结尾都是 “apple” 的字符串,这个是唯一的~;’banana’:表示任何包含”banana”的字符串,类似 iOS8的方法- (BOOL)containsString:(NSString *)aString.


    符号’*’(星号) ‘+’(加号) 和 ’ ? ‘(问号)

    ‘*’,’+’和 ‘?’ 这三个符号,表示一个或N个字符重复出现的次数。它们分别表示“没有或更多”([0,+∞]取整),“一次或更多”([1,+∞]取整),“没有或一次”([0,1]取整)

    • “ab*”:表示一个字符串有一个a后面跟着零个或若干个b(”a”, “ab”, “abbb”)
    • “ab+”:表示一个字符串有一个a后面跟着至少一个b或者更多( ”ab”, “abbb”)
    • “ab?”:表示一个字符串有一个a后面跟着零个或者一个b( ”a”, “ab”)
    • “a?b+$”:表示在字符串的末尾有零个或一个a跟着一个或几个b( “b”, “ab”,”bb”,”abb”)


    符号’{}’(大括号)

    用大括号括起来({}),表示一个重复的具体范围

    • “ab{4}”:表示一个字符串有一个a跟着4个b(”abbbb”)
    • “ab{1,}”:表示一个字符串有一个a跟着至少1个b(”ab” “abb” “abbb”)
    • “ab{3,4}”:表示一个字符串有一个a跟着3到4个b(”abbb” “abbbb”)

    • “*” 可以用{0,}表示; “+”可以用{1,}表示; “?”可以用{0,1}表示。 注意:可以没有下限,但是不能没有上限!例如“ab{,5}”是错误的写法


    “|”表示的或操作

    • “a|b”:表示一个字符串里有”a”或者”b”
    • “(a|bcd)ef”:表示”aef”或”bcdef”
    • “(a|b)*c”:表示一串”a” “b”混合的字符串后面跟一个”c”


    方括号’[]’

    方括号”[ ]“表示在括号内的众多字符中,选择1-N个括号内的符合语法的字符作为结果

    • “[ab]”:表示一个字符串有一个”a”或”b”(相当于”a|b”)
    • “[a-d]”:表示一个字符串包含小写的’a’到’d’中的一个(相当于”a|b|c|d”或者”[abcd]”)
    • “^[a-zA-Z]”:表示一个以字母开头的字符串
    • “[0-9]a”:表示a前有一位的数字
    • “[a-zA-Z0-9]$”:表示一个字符串以一个字母或数字结束


    点’.’

    ‘.’匹配除”\r\n”之外的任何单个字符

    • “a.[a-z]”:表示一个字符串有一个”a”后面跟着一个任意字符和一个小写字母
    • “^.{5}$”:表示任意1个长度为5的字符串
    • “\num” 其中num是一个正整数。表示”\num”之前的字符出现相同的个数
      • ”(.)\1”:表示两个连续的相同字符
      • “10{1,2}” : 表示数字1后面跟着1或者2个0 (“10″,”100”)
      • ” 0{3,}” : 表示数字为至少3个连续的0 (”000”,”0000”)


    方括号里用’^’

    在方括号里用’^’表示不希望出现的字符,’^’应在方括号里的第一位

    • “@[^a-zA-Z]4@”表示两个”@”中不应该出现字母


    其他常用

    • “ \d ”匹配一个数字字符。等价于[0-9]。
    • “ \D”匹配一个非数字字符。等价于[^0-9]。
    • “ \w ”匹配包括下划线的任何单词字符。等价于“[A-Za-z0-9_]”。
    • “ \W ”匹配任何非单词字符。等价于“[^A-Za-z0-9_]”。
    • iOS中书写正则表达式,碰到转义字符,多加一个“\”,例如:全数字字符:@”^\d+$”
        

    常用的正则表达式

    验证用户名和密码

    ^[a-zA-Z]\w{5,15}$

    验证电话号码

    ^(\\d{3,4}-)\\d{7,8}$

    验证手机号码

    ^1[3|4|5|7|8][0-9]\\d{8}$

    验证身份证号(15位或18位数字)

    \\d{14}[[0-9],0-9xX]

    验证Email地址

    ^\\w+([-+.]\\w+)*@\\w+([-.]\\w+)*\.\\w+([-.]\\w+)*$

    只能输入由数字和26个英文字母组成的字符串

    ^[A-Za-z0-9]+$

    整数或者小数

    ^[0-9]+([.]{0,1}[0-9]+){0,1}$

    只能输入数字

    ^[0-9]*$

    只能输入n位的数字

    ^\\d{n}$

    只能输入至少n位的数字

    ^\\d{n,}$

    只能输入m~n位的数字

    ^\\d{m,n}$

    只能输入零和非零开头的数字

    ^(0|[1-9][0-9]*)$

    只能输入有两位小数的正实数

    ^[0-9]+(.[0-9]{2})?$

    只能输入有1~3位小数的正实数

    ^[0-9]+(\.[0-9]{1,3})?$

    只能输入非零的正整数

    ^\+?[1-9][0-9]*$

    只能输入非零的负整数

    ^\-[1-9][]0-9″*$

    只能输入长度为3的字符

    ^.{3}$

    只能输入由26个英文字母组成的字符串

    ^[A-Za-z]+$

    只能输入由26个大写英文字母组成的字符串

    ^[A-Z]+$

    只能输入由26个小写英文字母组成的字符串

    ^[a-z]+$

    验证是否含有^%&’,;=?$\”等字符

    [^%&',;=?$\x22]+

    只能输入汉字

    ^[\u4e00-\u9fa5]{0,}$

    验证URL

    ^http://([\\w-]+\.)+[\\w-]+(/[\\w-./?%&=]*)?$

    验证一年的12个月

    ^(0?[1-9]|1[0-2])$

    验证一个月的31天

    ^((0?[1-9])|((1|2)[0-9])|30|31)$

    获取日期正则表达式

    \\d{4}[年|\-|\.]\\d{\1-\12}[月|\-|\.]\\d{\1-\31}日?
    评注:可用来匹配大多数年月日信息。

    匹配双字节字符(包括汉字在内)

    [^\x00-\xff]
    评注:可以用来计算字符串的长度(一个双字节字符长度计2,ASCII字符计1)

    匹配空白行的正则表达式:

    \n\s*\r
    评注:可以用来删除空白行

    匹配HTML标记的正则表达式

    <(\S*?)[^>]*>.*?</>|<.*? />
    评注:网上流传的版本太糟糕,上面这个也仅仅能匹配部分,对于复杂的嵌套标记依旧无能为力

    匹配首尾空白字符的正则表达式

    ^\s*|\s*$
    评注:可以用来删除行首行尾的空白字符(包括空格、制表符、换页符等等),非常有用的表达式

    匹配网址URL的正则表达式

    [a-zA-z]+://[^\s]*
    评注:网上流传的版本功能很有限,上面这个基本可以满足需求

    匹配帐号是否合法(字母开头,允许5-16字节,允许字母数字下划线)

    ^[a-zA-Z][a-zA-Z0-9_]{4,15}$
    评注:表单验证时很实用

    匹配腾讯QQ号

    [1-9][0-9]\{4,\}
    评注:腾讯QQ号从10 000 开始

    匹配中国邮政编码

    [1-9]\\d{5}(?!\d)
    评注:中国邮政编码为6位数字

    匹配ip地址

    ((2[0-4]\\d|25[0-5]|[01]?\\d\\d?)\.){3}(2[0-4]\\d|25[0-5]|[01]?\\d\\d?)
    下面给出正则表达式的元字符(来自百度百科)

    iOS语法

    //与NSPredicate配合使用
    - (BOOL)validateNumber:(NSString *) textString
    {
        NSString* number=@"^[0-9]+$";
        NSPredicate *numberPre = [NSPredicate predicateWithFormat:@"SELF MATCHES %@",number];
        return [numberPre evaluateWithObject:textString];
    }
    //字符串用法
    NSString *searchText = @"rangeOfString";
    NSRange range = [searchText rangeOfString:@"^[0-9]+$" options:NSRegularExpressionSearch];
    if (range.location != NSNotFound) {
       NSLog(@"range :%@", [searchText substringWithRange:range]);
    }
    //配合NSRegularExpression使用
    NSString *searchText = @"you want to match";    
    NSError *error = NULL;
    NSRegularExpression *regex = [NSRegularExpression regularExpressionWithPattern:@"^[0-9]+$" options:NSRegularExpressionCaseInsensitive error:&error];
    NSTextCheckingResult *result = [regex firstMatchInString:searchText options:0 range:NSMakeRange(0, [searchText length])];
    if (result) {
       NSLog(@"%@", [searchText substringWithRange:result.range]);
    }
    展开全文
  • iOS url的正则表达式

    2016-06-20 15:45:55
    ((http[s]{0,1}|ftp)://[a-zA-Z0-9\\-.]+(?::(\\d+))?(?:(?:/[a-zA-Z0-9\\-._?,'+\\&%$=~*!():@\\\\]*)+)?)|(www.[a-zA-Z0-9\\.\\-]+\\.([a-zA-Z]{2,4})(:\\d+)?(/[a-zA-Z0-9\\.\\-~!@#$%^&*+?:_/=

    ((http[s]{0,1}|ftp)://[a-zA-Z0-9\\-.]+(?::(\\d+))?(?:(?:/[a-zA-Z0-9\\-._?,'+\\&%$=~*!():@\\\\]*)+)?)|(www.[a-zA-Z0-9\\.\\-]+\\.([a-zA-Z]{2,4})(:\\d+)?(/[a-zA-Z0-9\\.\\-~!@#$%^&*+?:_/=<>]*)?)

    展开全文
  • #import ...#pragma 正则匹配邮箱 + (BOOL) checkEmail:(NSString *)email; #pragma 正则匹配手机号 + (BOOL)checkTelNumber:(NSString *) telNumber; #pragma 正则匹配用户密码6-18位数字和字母组合 +

    刚刚做项目用到正则表达式验证,总结了一些常用的


    #import <Foundation/Foundation.h>

    @interface Utils : NSObject

    #pragma 正则匹配邮箱

    + (BOOL) checkEmail:(NSString *)email;

    #pragma 正则匹配手机号

    + (BOOL)checkTelNumber:(NSString *) telNumber;

    #pragma 正则匹配用户密码6-18位数字和字母组合

    + (BOOL)checkPassword:(NSString *) password;

    #pragma 正则匹配用户姓名,20位的中文或英文

    + (BOOL)checkUserName : (NSString *) userName;

    #pragma 正则匹配用户身份证号

    + (BOOL)checkUserIdCard: (NSString *) idCard;

    #pragma 正则匹员工号,12位的数字

    + (BOOL)checkEmployeeNumber : (NSString *) number;

    #pragma 正则匹配URL

    + (BOOL)checkURL : (NSString *) url;

    @end


    #import "Utils.h"


    @implementation Utils


    #pragma 正则匹配邮箱

    + (BOOL) checkEmail:(NSString *)email

    {

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

        NSPredicate *emailTest = [NSPredicatepredicateWithFormat:@"SELF MATCHES %@", emailRegex];

        return [emailTest evaluateWithObject:email];

    }

    #pragma 正则匹配手机号

    + (BOOL)checkTelNumber:(NSString *) telNumber

    {

        NSString *pattern =@"^((13[0-9])|(15[^4,\\D])|(18[0,0-9]))\\d{8}$";

        NSPredicate *pred = [NSPredicatepredicateWithFormat:@"SELF MATCHES %@", pattern];

        BOOL isMatch = [pred evaluateWithObject:telNumber];

        return isMatch;

    }



    #pragma 正则匹配用户密码6-20位数字和字母组合

    + (BOOL)checkPassword:(NSString *) password

    {

        NSString *pattern =@"^[a-zA-Z0-9]{6,20}+$";

        NSPredicate *pred = [NSPredicatepredicateWithFormat:@"SELF MATCHES %@", pattern];

        BOOL isMatch = [pred evaluateWithObject:password];

        return isMatch;

        

    }


    #pragma 正则匹配用户姓名,20位的中文或英文

    + (BOOL)checkUserName : (NSString *) userName

    {

        NSString *pattern =@"^[a-zA-Z-]{1,20}";

        NSPredicate *pred = [NSPredicatepredicateWithFormat:@"SELF MATCHES %@", pattern];

        BOOL isMatch = [pred evaluateWithObject:userName];

        return isMatch;

        

    }



    #pragma 正则匹配用户身份证号1518

    + (BOOL)checkUserIdCard: (NSString *) idCard

    {

        NSString *pattern =@"(^[0-9]{15}$)|([0-9]{17}([0-9]|X)$)";

        NSPredicate *pred = [NSPredicatepredicateWithFormat:@"SELF MATCHES %@", pattern];

        BOOL isMatch = [pred evaluateWithObject:idCard];

        return isMatch;

    }


    #pragma 正则匹员工号,12位的数字

    + (BOOL)checkEmployeeNumber : (NSString *) number

    {

        NSString *pattern = @"^[0-9]{12}";

        

        NSPredicate *pred = [NSPredicatepredicateWithFormat:@"SELF MATCHES %@", pattern];

        BOOL isMatch = [pred evaluateWithObject:number];

        return isMatch;

        

    }


    #pragma 正则匹配URL

    + (BOOL)checkURL : (NSString *) url

    {

        NSString *pattern =@"^[0-9A-Za-z]{1,50}";

        NSPredicate *pred = [NSPredicatepredicateWithFormat:@"SELF MATCHES %@", pattern];

        BOOL isMatch = [pred evaluateWithObject:url];

        return isMatch;

        

    }

    @end


    使用方法,在需要使用的类里面导入#import "Utils.h"

     

    - (IBAction)loginClick:(id)sender {

        if ([UtilscheckTelNumber:_phoneTextField.text]) //匹配结果,YES

        {

           NSLog(@"手机号格式正确");

        }else{

            NSLog(@"手机号格式错误");

       }

    }


    展开全文
  • 很多不太懂正则的朋友,在遇到需要用正则校验数据时,往往是在网上去找很久,结果找来的还是不很符合要求。所以我最近把开发中常用的一些正则表达式整理了一下,包括校验数字、字符、一些特殊的需求等等。给自己留个...
  • 在项目中碰到了正则表达式的运用,正则还是非常强大的,不管什么编程语言,基本上都可以用到。之前在用java时特别是对用户名或密码使用正则非常爽,写 脚本上用正则也非常爽,可是到了OC这却把我虐了一把,可能是对...
  • #pragma mark - 手机号识别 - (BOOL)isMobileNumber:(NSString *)phone {   NSString * MOBILE = @"^(0|86|17951)?(13[0-9]|15[012356789]|17[678]|18[0-9]|14[57])[0-9]{8}$";...NSPredicate *regextestmobil
  • IOS常用正则表达式

    2014-11-02 11:38:12
    IOS常用正则表达式 正则表达式用于字符串处理、表单验证等场合,实用高效。现将一些常用的表达式收集于此,以备不时之需。 匹配中文字符的正则表达式: [\u4e00-\u9fa5] 评注:匹配中文还真是个头疼的事,有了这...
  • [iOS]常用正则表达式

    2015-08-06 09:34:39
    常用正则表达式大全!(例如:匹配中文、匹配html)  匹配中文字符的正则表达式: [u4e00-u9fa5]   评注:匹配中文还真是个头疼的事,有了这个表达式就好办了   匹配双字节字符(包括汉字在内):[^x00-xff]...
  • iOS--正则表达式

    2016-12-19 16:30:42
    一、校验数字的表达式数字:^[0-9]*$n位的数字:^\d{n}$至少n位的数字:^\d{n,}$m-n位的数字:^\d{m,n}$零和非零开头的数字:^(0|[1-9][0-9]*)$非零开头的最多带两位小数的数字:^([1-9][0-9]*)+(.[0-9]{1,2})?...
  • -(void)parseLink { NSError* error = NULL; //(encoding=\")[^\"]+(\") //分成三段来理解 /* 第一段:以某段字符做为起始 ... 第二段:对于包含中的定义,参见正则. 第三段:再以某段字符做为收尾 (\") */
  • ios项目的开发中可能很多地方都需要用到身份证校验,一般在开发的时候很多人都是直接百度去网上荡相关的正则表达式和校验代码,但是网上疯狂 粘贴复制的校验代码本身也可能并不准确,可能会有风险,比如2013年1月1...
  • iOS正则表达式
  • 正则表达式 /** [] : 括号内方的是匹配的条件 , 一般来说, 一个[], 就代表匹配一位 [a-z] : 匹配小写 a~z [0-9] : 匹配0~9的数字 另外一种写法 \d == [0-9] ^ : 代表已后面的匹配条件为开头 $ : 代表以前面一...
  • IOS IP正则表达式

    2019-01-08 17:35:54
    下面给出相对应的正则表达式: "^(1\\d{2}|2[0-4]\\d|25[0-5]|[1-9]\\d|[1-9])\\." +"(1\\d{2}|2[0-4]\\d|25[0-5]|[1-9]\\d|\\d)\\." +"(1\\d{2}|2[0-4]\\d|25[0-5]|[1-9]\\d|\...
  • .  匹配除“\r\n”之外的任何单个字符 [ ]包含,默认是一个字符长度 “[a-d]“:表示一个字符串包含小写的’a'到’d'中的一个(相当于”a|b|c|d”或者”[abcd]“) ...^开始 “^one”:表示所有以”one”开始的...
  • 几乎所有的项目都涉及验证手机号的格式是否正确,这就需要正则表达式来进行判断。- (BOOL)valiMobile:(NSString *)mobile { mobile = [mobile stringByReplacingOccurrencesOfString:@" " withString:@""]; if ...
  • ios中运用正则表达式
  • iOS 输入正则判断

    2018-10-31 11:02:01
    #pragma - mark 只能为中文 -(BOOL)onlyInputChineseCharacters:(NSString*)string{ NSString *inputString =@"[\u4e00-\u9fa5]+"; NSPredicate *predicate = [NSPredicatepredicateWithFormat:@“SELF ...
  • iOS中的正则表达式

    2016-03-01 10:56:35
    iOS中,系统自带的正则类是 NSRegularExpression初始化 + (nullable NSRegularExpression *)regularExpressionWithPattern:(NSString *)pattern options:(NSRegularExpressionOptions)options error:(NSError **)...
1 2 3 4 5 ... 20
收藏数 20,523
精华内容 8,209
热门标签
关键字:

ios 分章节 正则