概述
//判断输入金额
- (
BOOL
)textField:(
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
;
}
}
最后
以上就是健壮画板为你收集整理的判断输入金额,很完善的全部内容,希望文章能够帮你解决判断输入金额,很完善所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复