iOS 中textfield只允许输入字母和数字,限制长度

来源:互联网 发布:ceph 写入数据失败 编辑:程序博客网 时间:2024/06/10 01:29

在textfield中添加以下代码

-(BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string{

    

if (textField ==_pwdTextField) {

        NSUInteger lengthOfString = string.length;  //lengthOfString的值始终为1

        for (NSInteger loopIndex =0; loopIndex < lengthOfString; loopIndex++) {

            unichar character = [string characterAtIndex:loopIndex]; //将输入的值转化为ASCII值(即内部索引值),可以参考ASCII表

           // 48-57;{0,9};65-90;{A..Z};97-122:{a..z}

            if (character <48) return NO;// 48 unichar for 0

            if (character > 57 && character < 65) return NO; //

            if (character > 90 && character < 97) return NO;

            if (character > 122) return NO;


        }

        // Check for total length

        NSUInteger proposedNewLength = textField.text.length - range.length + string.length;

        if (proposedNewLength > 6) {

            return NO;//限制长度

        }

        return YES;


    }

    return YES;

}


ASCII表
ASCII值控制字符ASCII值控制字符ASCII值控制字符ASCII值控制字符0NUT32(space)64@96、1SOH33!65A97a2STX34"66B98b3ETX35#67C99c4EOT36$68D100d5ENQ37%69E101e6ACK38&70F102f7BEL39,71G103g8BS40(72H104h9HT41)73I105i10LF42*74J106j11VT43+75K107k12FF44,76L108l13CR45-77M109m14SO46.78N110n15SI47/79O111o16DLE48080P112p17DCI49181Q113q18DC250282R114r19DC351383S115s20DC452484T116t21NAK53585U117u22SYN54686V118v23TB55787W119w24CAN56888X120x25EM57989Y121y26SUB58:90Z122z27ESC59;91[123{28FS60<92/124|29GS61=93]125}30RS62>94^126`31US63?95_127DEL
0 0
原创粉丝点击