iOS-正则表达式用作筛选

需求:实现一个只能输入英文和数字的输入框,并且必须是英文开头(纯英文,英文+数字,但不能是‘xml’)

实现:

- (void)textFieldDidEndEditing:(UITextField *)textField Cell:(MetadataCell *) cell
{
    
    //if ([textField.superview.superview isMemberOfClass:[MetadataCell class]])
    if(cell != NULL)
    {
        //MetadataCell *cell = (MetadataCell*)textField.superview.superview;
        
        if(cell == nil)
            NSLog(@"empty cell");
        NSString *cellText = [NSString  stringWithString: cell.textContext.text];
        NSString *cellKey = [NSString stringWithString: cell.textKey.text];
        //NSLog(@"cellText = %@",cellText);
        NSIndexPath *indexPath = [self.m_table indexPathForCell:cell];
        
        if(indexPath.section == 0)
        {
            switch (indexPath.row)
            {
                case 0:
                    [BasicMetaData setValue:cellText forKey:@"Title"];
                    break;
                case 1:
                    [BasicMetaData setValue:cellText forKey:@"Crew"];
                    break;
                case 2:
                    [BasicMetaData setValue:cellText forKey:@"Description"];
                    break;
                default:
                    break;
            }
        }
        //NSLog(@"BasicMetaData = %@",BasicMetaData);
        if(indexPath.section == 1)
        {
            if (cellKey) {
                if ([self beginWithLetter:cellKey] == YES) {
                    if ([cellKey hasPrefix:@"xml"]) {
                        NSString *message = NSLocalizedString(@"Key is only allowed with letters start (exclude ‘xml’)",nil);
                        [self showAlertWhenCustomMetadataKeyIsInvalid:message andCell:cell];
                    }

                }else{
                    
                    NSString *message = NSLocalizedString(@"Key is only allowed with letters start (exclude ‘xml’)",nil);
                    [self showAlertWhenCustomMetadataKeyIsInvalid:message andCell:cell];
                }
            }
            
            NSArray *array = [NSArray arrayWithObjects:cellKey,cellText,nil];
            CusMetaData[indexPath.row] = [NSArray arrayWithArray:array];
        }
        //NSLog(@"CusMetaData = %@",CusMetaData);
    }
    [m_table reloadData];
}

//  判断是否以字母开头(正则判断)
- (BOOL)beginWithLetter:(NSString *)str {
    NSString *regular = @"^[A-Za-z]|^[A-Za-z].+$";
    NSPredicate *predicate = [NSPredicate predicateWithFormat:@"SELF MATCHES %@",regular];
    if ([predicate evaluateWithObject:str] == YES){
        return YES;
    }else{
        return NO;
    }
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值