iOS中是正则判断否含特殊字符

.    匹配除“\r\n”之外的任何单个字符
[ ]包含,默认是一个字符长度 “[a-d]“:表示一个字符串包含小写的’a'到’d'中的一个(相当于”a|b|c|d”或者”[abcd]“)
^开始   “^one”:表示所有以”one”开始的字符串  
$ 结尾  “a dog$”:表示所以以”a dog”结尾的字符串
?,*,+,\d,\w 都是等价字符
?等价于匹配长度{0,1} “ab?”表示一个字符串有一个a后面跟着[0,1]b
*等价于匹配长度{0,}    “ab*”:表示一个字符串有一个a后面跟着[0,+]b
+等价于匹配长度{1,}   “ab+”:表示一个字符串有一个a后面跟着[1,+]b
练习:“a?b+$”:表示在字符串的末尾有零个或一个a跟着一个或几个b
\d等价于[0-9] 0至9数字
\D等价于[^0-9] 非0至9数字   在方括号里用’^'表示不希望出现的字符,’^'应在方括号里的第一位
\w等价于[A-Za-z_0-9] 26个大写字母、26个小写字母和0至9数字
\W等价于[^A-Za-z_0-9]
() 域段
[^] 不包含,默认是一个字符长度
{n,m} 匹配长度   “ab{3,4}”:表示一个字符串有一个a跟着3到4个b; “ab{4}”:表示一个字符串有一个a跟着4个b
| 或 “(a|bcd)ef”:表示”aef”或”bcdef”
\ 转义
“\num” 其中num是一个正整数。表示”\num”之前的字符出现相同的个数 “(.)\1″:表示两个连续的相同字符 ;“10\{1,2\}” : 表示数字1后面跟着1或者2个0 (“10″,”100″)

, 分割

例句:

字符串;tel:086-0666-88810009999
原始正则:"^tel:[0-9]{1,3}-[0][0-9]{2,3}-[0-9]{8,11}$" 
速记理解:开始 "tel:普通文本"[0-9数字]{1至3位}"-普通文本"[0数字][0-9数字]{2至3位}"-普通文本"[0-9数字]{8至11位} 结束"
等价简写后正则写法:"^tel:\d{1,3}-[0]\d{2,3}-\d{8,11}$"
 

+ (BOOL)checkTelNumber:(NSString *) telNumber

{

    NSString *pattern = @"^1+[3578]+\\d{9}";

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

  BOOL isMatch = [pred evaluateWithObject:telNumber];

  if (telNumber.length != 11) {

  return NO;

}

return isMatch;

}


- (BOOL)containsChineseLetterNum
{
    NSRegularExpression * regex = [NSRegularExpression regularExpressionWithPattern:@"[a-zA-Z0-9\u4e00-\u9fa5]+" options:NSRegularExpressionAllowCommentsAndWhitespace error:nil];
    NSArray *result = [regex matchesInString:self options:NSMatchingReportCompletion range:NSMakeRange(0, self.length)];
    NSMutableString * newStr = [[NSMutableString alloc]initWithCapacity:0];
    for(NSTextCheckingResult * item in result)
    {
        [newStr appendString:[self substringWithRange:[item rangeAtIndex:0]]];
    }
    return [self isEqualToString:newStr];
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值