美文网首页
输入价格的格式判断

输入价格的格式判断

作者: 云端了啦 | 来源:发表于2017-04-20 13:57 被阅读0次

@property (nonatomic, assign) BOOL isHaveDian;

@property (nonatomic, assign) BOOL isFirstZero;

@property (nonatomic, strong) UITextField* startText;

遵循UITextField协议,并实现shouldChangeCharactersInRange方法

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

if (textField ==self.startText) {

return [self panDuanTextField:textField  shouldChangeCharactersInRange:range replacementString:string];

}

}

return YES;

}

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

if ([textField.text rangeOfString:@"."].location==NSNotFound) {

_isHaveDian = NO;

}

if ([textField.text rangeOfString:@"0"].location==NSNotFound) {

_isFirstZero = NO;

}

if ([string length]>0)

{

unichar single=[string characterAtIndex:0];//当前输入的字符

if ((single >='0' && single<='9') || single=='.')//数据格式正确

{

if([textField.text length]==0){

if(single == '.'){

//首字母不能为小数点

return NO;

}

if (single == '0') {

_isFirstZero = YES;

return YES;

}

}

if (single=='.'){

if(!_isHaveDian)//text中还没有小数点

{

_isHaveDian=YES;

return YES;

}else{

return NO;

}

}else if(single=='0'){

if ((_isFirstZero&&_isHaveDian)||(!_isFirstZero&&_isHaveDian)) {

//首位有0有.(0.01)或首位没0有.(10200.00)可输入两位数的0

if([textField.text isEqualToString:@"0.0"]){

return NO;

}

NSRange ran=[textField.text rangeOfString:@"."];

int tt=(int)(range.location-ran.location);

if (tt <= 2){

return YES;

}else{

return NO;

}

}else if (_isFirstZero&&!_isHaveDian){

//首位有0没.不能再输入0

return NO;

}else{

return YES;

}

}else{

if (_isHaveDian){

//存在小数点,保留两位小数

NSRange ran=[textField.text rangeOfString:@"."];

int tt= (int)(range.location-ran.location);

if (tt <= 2){

return YES;

}else{

return NO;

}

}else if(_isFirstZero&&!_isHaveDian){

//首位有0没点

return NO;

}else{

return YES;

}

}

}else{

//输入的数据格式不正确

return NO;

}

}else{

return YES;

}

return YES;

}

相关文章

  • 输入价格的格式判断

    @property (nonatomic, assign) BOOL isHaveDian; @property ...

  • 注册功能实现 -- 8.用户登录登出功能

    一、用户登录功能实现 1.分析 业务处理流程: 判断用户输入的账号是否为空 判断用户输入的密码是否为空,格式是否正...

  • 正则表达式

    1.概述 正确的字符串格式规则,常用来判断用户输入的内容是否符合格式的要求,注意是严格区分大小写的。如:输入邮箱,...

  • python -02-闰年判断

    闰年判断程序: if判断、格式化输出、运算符 要求: 用vi编写一个panDuanRunNian.py程序 输入一...

  • 1061. 判断题(15)

    描述 判断题的评判很简单,本题就要求你写个简单的程序帮助老师判题并统计学生们判断题的得分。 输入格式: 输入在第一...

  • 预防SQL注入

    预防SQL注入 1.控制输入变量的格式 增加对输入信息的判断,过滤掉一些带特殊字符的输入。 2.转义特殊字符

  • 1011. A+B和C (15)

    题目: 给定区间[-231, 231]内的3个整数A、B和C,请判断A+B是否大于C。 输入格式: 输入第1行给出...

  • 1061 判断题 (15 分)

    判断题的评判很简单,本题就要求你写个简单的程序帮助老师判题并统计学生们判断题的得分。 输入格式: 输入在第一行给出...

  • 1061 判断题

    判断题的评判很简单,本题就要求你写个简单的程序帮助老师判题并统计学生们判断题的得分。 输入格式: 输入在第一行给出...

  • PTA 1061 判断题 (15 分)

    题目 判断题的评判很简单,本题就要求你写个简单的程序帮助老师判题并统计学生们判断题的得分。 输入格式:输入在第一行...

网友评论

      本文标题:输入价格的格式判断

      本文链接:https://www.haomeiwen.com/subject/rghlzttx.html