UITextField 输入金额,小数点的控制输入
#pragma mark --- UITextFieldDelegate ---
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
{
// 判断是否有小数点
if ([textField.text containsString:@"."]) {
self.isHaveDian = YES;
}else{
self.isHaveDian = NO;
}
if (string.length > 0) {
//当前输入的字符
unichar single = [string characterAtIndex:0];
// 不能输入.0-9以外的字符
if (!((single >= '0' && single <= '9') || single == '.'))
{
return NO;
}
// 只能有一个小数点
if (self.isHaveDian && single == '.') {
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:@"."]) {
return NO;
}
}else{
if (![string isEqualToString:@"."]) {
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 > 5) {
return NO;
}
}
}
}
return YES;
}
UITextField 输入金额,小数点的控制输入的更多相关文章
- jquery限制文本框只能输入金额
$("#batch_diff_percent").keyup(function () { var reg = $(this).val().match(/\d+\.?\d{0,2}/ ...
- iOS textField输入金额的限制,小数点前9位,后面两位
iOS textField输入金额的限制,小数点前9位,后面两位,如果不加小数点,最大位数是9位,加上小数点,最大位数是12位,超出最大位数可删除 - (BOOL)textField:(UITextF ...
- UITextField 的限制输入金额(可为小数的正确金额)
要判断输入金额为正确金额的方法有两个,一个是用正则表达式,另一个就是用textfield的代理方法 有时候难免遇到这样的需求,不符合规则的金额就不让输入时,那用这种方法比较合理 如果设置输入键盘为De ...
- UITextField 对输入金额的约束
[2016/1/18更新] -- 五个人辛辛苦苦干了一年的项目终于上线了,今天有空看了一下正则表达式教程,然后开始rebuild之前的种种对字符串的约束,首先就从这个金额输入框开始吧,修改后的代码如下 ...
- TextFiled 中输入金额
要求: 输入的金额不能超过六位, 小数点后面只能输入两位小数 如果 textFIled 中第一位输入的是0 ,后面必须输入小数点,否则禁止输入 用到 textfiled代理方法 #pragma ma ...
- input框输入金额显示千分位
比如输入:1000000,则显示为1,000,000(或者是保留3位小数:1,000,000.000) 知识点: 1)JavaScript parseFloat() 函数: 定义:parseFloat ...
- textbox 控制输入整数,小数
/// <summary> /// keypress事件控制输入 /// </summary> /// <param name="sender"> ...
- 再谈EditText只能输入金额
上次写了一篇EditText只能输入金额的博客,后来发现一个bug,当还未输入数字的情况下输入小数点程序就崩了,我去测了一下支付宝,看看会怎么样,我先输入小数点,程序正常,我再输入数字,可以正常输入, ...
- js正则表达式限制文本框只能输入数字,小数点,英文字母
1.文本框只能输入数字代码(小数点也不能输入)<input onkeyup="this.value=this.value.replace(/\D/g,'')" onafter ...
随机推荐
- (英文版)VScode一键生成.vue模板
1. 安装vscode,官网地址 2.安装一个插件,识别vue文件 插件库中搜索Vetur,下图中的第一个,点击安装(Install) 3.新建代码片段 点击Code(代码)-Preferences( ...
- tensorflow 升级到1.9-rc0,tensorboard 报错:TypeError: GetNext() takes exactly 1 argument (2 given)
Exception in thread Reloader:Traceback (most recent call last): File "/usr/lib/python2.7/threa ...
- 小组团队项目的NABCD分析
N:1.学校中有很多学生是外省的,然后不知道附近有什么地方周末可以去玩,有时候想记录自己每天发生的乐趣事情并且想跟别人分享.2.学校中学生有很多用不到的东西但是联系不到合适的买家.A:我们可以做一个软 ...
- shell 启动和停止脚本
启动脚本 start_kmeans_v3.sh #!/bin/bash #用于kmeans_data_v3_hadle启动 ps -ef | grep kmeans_data_v3_hadle.py ...
- JavaScript进度条(datalist/repeater等多个进度条)
JS代码: function SingleProgressBar() { var iload = document.getElementById("iLoading"); var ...
- java中null是什么,以及使用中要注意的事项
1.null既不是对象也不是一种类型,它仅是一种特殊的值,你可以将其赋予任何引用类型,你也可以将null转化成任何类型,例如: Integer i=null; Float f=null; String ...
- css3+html5特效-向上滑动
css+html5特效-向上滑动 效果描述:切换的下拉和上拉状态 鼠标悬浮:下拉鼠标离开:上拉 /*外容器设置*/ .box1{position:relative;top:100px;left:100 ...
- airTest 使用体验
airTest是国内网易自研的一套基于图像识别进行UI自动化测试的框架,目前已经可以支持andriod,ios,web端的UI测试,在google开发者大会上得到了google的高度认可. 最近在学习 ...
- df命令,du命令,磁盘分区
df 命令 功能:用来检查linux的文件系统的磁盘空间占用情况 1. df -h 2. 以innode节点数量显示磁盘空间占用情况 df -ih 3. 列出文件系统类型 df -Th du 命令 功 ...
- C# DataTable抽取Distinct数据(不重复数据)[z]
DataTable dataTable; DataView dataView = dataTable.DefaultView; DataTable dataTableDisti ...