zoukankan      html  css  js  c++  java
  • iOS UITextfield只允许输入数字和字母,长度限制

    -(BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string{
        
    if (textField ==自己定义的textField) {
            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;
    }

    自己通过懒加载加载需要的View,我们自己的项目需要填写运费单号:效果如下:

    只需要将上述代码拷贝到你自定义的textfield的当前View上,就可以解决问题,(要记得加入UITextfieldDelegate)加入代理,这样才可以。

    拓展:本次校验是通过ASCII表来校验。

    ASCII值控制字符ASCII值控制字符ASCII值控制字符ASCII值控制字符
    0 NUT 32 (space) 64 @ 96
    1 SOH 33 ! 65 A 97 a
    2 STX 34 " 66 B 98 b
    3 ETX 35 # 67 C 99 c
    4 EOT 36 $ 68 D 100 d
    5 ENQ 37 % 69 E 101 e
    6 ACK 38 & 70 F 102 f
    7 BEL 39 , 71 G 103 g
    8 BS 40 ( 72 H 104 h
    9 HT 41 ) 73 I 105 i
    10 LF 42 * 74 J 106 j
    11 VT 43 + 75 K 107 k
    12 FF 44 , 76 L 108 l
    13 CR 45 - 77 M 109 m
    14 SO 46 . 78 N 110 n
    15 SI 47 / 79 O 111 o
    16 DLE 48 0 80 P 112 p
    17 DCI 49 1 81 Q 113 q
    18 DC2 50 2 82 R 114 r
    19 DC3 51 3 83 S 115 s
    20 DC4 52 4 84 T 116 t
    21 NAK 53 5 85 U 117 u
    22 SYN 54 6 86 V 118 v
    23 TB 55 7 87 W 119 w
    24 CAN 56 8 88 X 120 x
    25 EM 57 9 89 Y 121 y
    26 SUB 58 : 90 Z 122 z
    27 ESC 59 ; 91 [ 123 {
    28 FS 60 < 92 / 124 |
    29 GS 61 = 93 ] 125 }
    30 RS 62 > 94 ^ 126 `
    31 US 63 ? 95 _ 127 DEL
  • 相关阅读:
    《CoderXiaoban》第八次团队作业:Alpha冲刺5
    《CoderXiaoban》第八次团队作业:Alpha冲刺4
    《CoderXiaoban》第八次团队作业:Alpha冲刺 3
    《CoderXiaoban》第八次团队作业:Alpha冲刺 2
    《CoderXiaoban》第八次团队作业:Alpha冲刺1
    毛毛虫组【Beta】Scrum Meeting 3
    毛毛虫组【Beta】Scrum Meeting 2
    毛毛虫组【Beta】Scrum Meeting 1
    《毛毛虫团队》第九次团队作业:BETA冲刺与团队项目验收
    《毛毛虫组》【Alpha】Scrum meeting 5
  • 原文地址:https://www.cnblogs.com/guohai-stronger/p/9103629.html
Copyright © 2011-2022 走看看