UITextField 只能输入(限制输入)数字和"."
2016-08-11 10:48
387 查看
真心好用,输入价格的话可以直接拿去用,如果需要提醒什么的就
“// [self alertView:@”亲,第一个数字不能为小数点”];”书写需要的提示信息;
//textField.text 输入之前的值 string 输入的字符
//先设置属性
@property (nonatomic, assign) BOOL isHaveDian;
//textField.text 输入之前的值 string 输入的字符
- (BOOL)textField:(UITextField )textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString )string
{
if ([textField.text rangeOfString:@”.”].location==NSNotFound) {
_isHaveDian = NO;
}
if ([string length]>0)
{
unichar single=[string characterAtIndex:0];//当前输入的字符
if ((single >=’0’ && single<=’9’) || single==’.’)//数据格式正确
{
//首字母不能为0和小数点
if([textField.text length]==0){
if(single == ‘.’){
// [self alertView:@”亲,第一个数字不能为小数点”];
[textField.text stringByReplacingCharactersInRange:range withString:@”“];
return NO;
}
if (single == ‘0’) {
// [self alertView:@”亲,第一个数字不能为0”];
[textField.text stringByReplacingCharactersInRange:range withString:@”“];
return NO;
}
}
if (single==’.’)
{
if(!_isHaveDian)//text中还没有小数点
{
_isHaveDian=YES;
return YES;
}else
{
// [self alertView:@”亲,您已经输入过小数点了”];
[textField.text stringByReplacingCharactersInRange:range withString:@”“];
return NO;
}
}
else
{
if (_isHaveDian)//存在小数点
{
//判断小数点的位数
NSRange ran=[textField.text rangeOfString:@”.”];
NSInteger tt = range.location-ran.location;
if (tt <= 2){
return YES;
}else{
// [self alertView:@”亲,您最多输入两位小数”];
return NO;
}
}
else
{
return YES;
}
}
}else{//输入的数据格式不正确
// [self alertView:@”亲,您输入的格式不正确”];
[textField.text stringByReplacingCharactersInRange:range withString:@”“];
return NO;
}
}
else
{
return YES;
}
}
“// [self alertView:@”亲,第一个数字不能为小数点”];”书写需要的提示信息;
//textField.text 输入之前的值 string 输入的字符
//先设置属性
@property (nonatomic, assign) BOOL isHaveDian;
//textField.text 输入之前的值 string 输入的字符
- (BOOL)textField:(UITextField )textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString )string
{
if ([textField.text rangeOfString:@”.”].location==NSNotFound) {
_isHaveDian = NO;
}
if ([string length]>0)
{
unichar single=[string characterAtIndex:0];//当前输入的字符
if ((single >=’0’ && single<=’9’) || single==’.’)//数据格式正确
{
//首字母不能为0和小数点
if([textField.text length]==0){
if(single == ‘.’){
// [self alertView:@”亲,第一个数字不能为小数点”];
[textField.text stringByReplacingCharactersInRange:range withString:@”“];
return NO;
}
if (single == ‘0’) {
// [self alertView:@”亲,第一个数字不能为0”];
[textField.text stringByReplacingCharactersInRange:range withString:@”“];
return NO;
}
}
if (single==’.’)
{
if(!_isHaveDian)//text中还没有小数点
{
_isHaveDian=YES;
return YES;
}else
{
// [self alertView:@”亲,您已经输入过小数点了”];
[textField.text stringByReplacingCharactersInRange:range withString:@”“];
return NO;
}
}
else
{
if (_isHaveDian)//存在小数点
{
//判断小数点的位数
NSRange ran=[textField.text rangeOfString:@”.”];
NSInteger tt = range.location-ran.location;
if (tt <= 2){
return YES;
}else{
// [self alertView:@”亲,您最多输入两位小数”];
return NO;
}
}
else
{
return YES;
}
}
}else{//输入的数据格式不正确
// [self alertView:@”亲,您输入的格式不正确”];
[textField.text stringByReplacingCharactersInRange:range withString:@”“];
return NO;
}
}
else
{
return YES;
}
}
相关文章推荐
- Android之获取手机上的图片和视频缩略图thumbnails
- android string.xml文件中的整型和string型代替
- Android java 与 javascript互访(相互调用)的方法例子
- android上改变listView的选中颜色
- String.intern
- Prototype源码浅析 String部分(二)
- Ruby中的String对象学习笔记
- Redis02 使用Redis数据库(String类型)全面解析
- PostgreSQL ERROR: invalid escape string 解决办法
- C#中Byte[]和String之间转换的方法
- 浅谈C++中的string 类型占几个字节
- 标准C++类string的Copy-On-Write技术
- C++实现string存取二进制数据的方法
- 关于C++ string和c类型字符数组的对比
- C#中string和StingBuilder内存中的区别实例分析
- 详解C++中实现继承string类的MyString类的步骤
- PHP STRING 陷阱原理说明
- c#中 String和string的区别介绍
- C#实现的图片、string相互转换类分享
- asp.net String.IsNullOrEmpty 方法