IOS中TextField中支付只能输入数字,并且小数点后最多输入两位
2017-05-23 13:51
579 查看
http://www.jianshu.com/p/a920df4b7936
/** * textField的代理方法,监听textField的文字改变 * textField.text是当前输入字符之前的textField中的text * * @param textField textField * @param range 当前光标的位置 * @param string 当前输入的字符 * * @return 是否允许改变 */ - (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string { /* * 不能输入.0-9以外的字符。 * 设置输入框输入的内容格式 * 只能有一个小数点 * 小数点后最多能输入两位 * 如果第一位是.则前面加上0. * 如果第一位是0则后面必须输入点,否则不能输入。 */ // 判断是否有小数点 if ([textField.text containsString:@"."]) { self.isHaveDian = YES; }else{ self.isHaveDian = NO; } if (string.length > 0) { //当前输入的字符 unichar single = [string characterAtIndex:0]; BXLog(@"single = %c",single); // 不能输入.0-9以外的字符 if (!((single >= '0' && single <= '9') || single == '.')) { [MBProgressHUD bwm_showTitle:@"您的输入格式不正确" toView:self hideAfter:1.0]; return NO; } // 只能有一个小数点 if (self.isHaveDian && single == '.') { [MBProgressHUD bwm_showTitle:@"最多只能输入一个小数点" toView:self hideAfter:1.0]; return NO; } // 如果第一位是.则前面加上0. if ((textField.text.length == 0) && (single == '.')) { textField.text = @"0"; } // 如果第一位是0则后面必须输入点,否则不能输入。 if ([textField.text hasPrefix:@"0"]) { if (textField.text.length > 1) { NSString *secondStr = [textField.text substringWithRange:NSMakeRange(1, 1)]; if (![secondStr isEqualToString:@"."]) { [MBProgressHUD bwm_showTitle:@"第二个字符需要是小数点" toView:self hideAfter:1.0]; return NO; } }else{ if (![string isEqualToString:@"."]) { [MBProgressHUD bwm_showTitle:@"第二个字符需要是小数点" toView:self hideAfter:1.0]; return NO; } } } // 小数点后最多能输入两位 if (self.isHaveDian) { NSRange ran = [textField.text rangeOfString:@"."]; // 由于range.location是NSUInteger类型的,所以这里不能通过(range.location - ran.location)>2来判断 if (range.location > ran.location) { if ([textField.text pathExtension].length > 1) { [MBProgressHUD bwm_showTitle:@"小数点后最多有两位小数" toView:self hideAfter:1.0]; return NO; } } } } return YES; }
相关文章推荐
- iOS中TextField只能输入数字且小数点后最多输入两位
- android edittext 限制小数点后最多只能输入两位数字
- JS控制只能输入数字并且最多允许小数点两位
- iOS开发中如何设置textfield输入长度并且仅仅只能输入数字
- iOS开发判断TextField中输入的数字为小数点后两位
- edittext只能输入数字和小数点,且小数点后只能输入两位
- iOS 货币交易输入数字检测 小数点前面三位,小数点后允许两位,并且向上取整(无精度丢失问题)
- HTML控制文本框只能输入数字和小数点,并且只能保留小数点后两位 金额转换,阿拉伯数字的金额转换成 面试题
- iOS UITextField 数字输入限制 只能输入数字和小数点,只能有两位小数
- jQuery只能输入数字并且最多允许两位小数
- ios设置textField只能输入数字用于电话号码
- 只能让用户输入数字和小数点后最多能输入两位。
- XZ_iOS之实现textField限制只能输入数字,无论是第三方键盘还是自带键盘
- JS控制只能输入数字并且最多允许小数点两
- input只能输入数字和小数点,并且只能保留小数点后两位
- javascript 控制input只能输入数字并且最多允许两位小数的数字
- iOS UITextField 只能输入数字和小数点,只能有两位小数
- iOS TextField输入限制(限制长度、只能输入数字,只能输入数字字母……)
- iOS最完美的UITextField中输入金额,只能输入数字和小数点,保留两位小数点且0放在首位
- iOS UITextField 只能输入数字和小数点,只能有两位小数