我正面临着如何在uitextfiled中验证金额值的小问题。我有一个文本的限制应该大于Rs.10和值之间的范围是Rs.99999。如果用户输入无效金额,如Rs.01,02,04,09,应避免使用此类号码
我刚刚用简单的方法调用我的函数:
if ([amount.text length]>=2 && [amount.text length]<=5) {
}else{
UIAlertView *alert = [[UIAlertView alloc]initWithTitle:@"error" message:@"Plz enter the amout Min 10Rs" delegate:self cancelButtonTitle:@"OK" otherButtonTitles:nil, nil];
[alert show];
return;
}
答案 0 :(得分:1)
请查看以下代码:
if ([amount.text doubleValue]>=10 && [amount.text doubleValue]<99999){
}
else{
UIAlertView *alert = [[UIAlertView alloc]initWithTitle:@"error" message:@"Plz enter the amout Min 10Rs" delegate:self cancelButtonTitle:@"OK" otherButtonTitles:nil, nil];
[alert show];
return;
}
答案 1 :(得分:1)
您应该使用NSNumberFormatter
进行解析。它具有高度可配置性,如果输入已损坏,则可轻松说明。除此之外,它还有<xsl:stylesheet version="2.0" xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:xs="http://www.w3.org/2001/XMLSchema" exclude-result-prefixes="xhtml xsl xs">
<xsl:output method="xhtml" indent="yes"/>
<xsl:key name="idcode" match="/users/idcode" use="@id"/>
<xsl:template match="/">
<output>
<xsl:apply-templates select="users/user" />
</output>
</xsl:template>
<xsl:template match="users/user">
<systemUser>
<xsl:value-of select="."/>
</systemUser>
<xsl:apply-templates select="key('idcode', tokenize(@idcode, ','))"/>
</xsl:template>
<xsl:template match="idcode">
<systemId value="{.}"/>
</xsl:template>
</xsl:stylesheet>
和minimum
属性。
答案 2 :(得分:0)
int val = amount.text.integerValue
if (val > 10 && val < 99999){
}
else{
UIAlertView *alert = [[UIAlertView alloc]initWithTitle:@"error" message:@"Plz enter the amout Min 10Rs" delegate:self cancelButtonTitle:@"OK" otherButtonTitles:nil, nil];
[alert show];
}
答案 3 :(得分:0)
您应该使用:
- (BOOL)textField:(UITextField *)textField
shouldChangeCharactersInRange:(NSRange)range
replacementString:(NSString *)string
您可以完全控制文本字段中显示的内容。由于该方法返回BOOL
值,因此如果满足您的要求,您可以接受替换字符串(通过返回YES
),或者通过返回NO
来保留旧文本。
不要忘记将委托分配给UITextField
,以便调用此方法。
修改强>
可能的解决方案:
如果文本字段只应采用数字字符,则应将键盘类型设置为:
textfield.keyboardType = UIKeyboardTypeNumberPad;
在上述方法的实现中,你可以写:
NSInteger value = [textField.text stringByReplacingCharactersInRange:range withString:string].integerValue;
if (value >=10 && value <= 99999){
return YES;
}else{
// inform the user the input is invalid
return NO;
}
答案 4 :(得分:0)
使用以下代码限制用户输入单号和6号号
注意:使用KeyboardType作为UIKeyboardTypeNumberPad
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
{
if (textField.text.length >= 5 && range.length < 2)
{
return NO; //Not allowing the user to enter single character or greater than 5 characters
}
else
{
return YES;
}
}
希望它可以帮助你......!