猿问
回到首页
个人中心
反馈问题
注册登录
下载APP
首页
课程
实战
体系课
手记
专栏
慕课教程
检查UITextField的输入是否仅为数字
如何验证字符串输入
UITextField
?我想检查字符串是否为数字,包括小数点。
一只甜甜圈
浏览 501
回答 3
3回答
有只小跳蛙
我在我的Mac应用程序中使用此代码,相同或类似的应该与iPhone一起使用。它基于RegexKitLite正则表达式,并在无效时将文本变为红色。static bool TextIsValidValue( NSString* newText, double &value ){ bool result = false; if ( [newText isMatchedByRegex:@"^(?:|0|[1-9]\\d*)(?:\\.\\d*)?$"] ) { result = true; value = [newText doubleValue]; } return result;}- (IBAction) doTextChanged:(id)sender;{ double value; if ( TextIsValidValue( [i_pause stringValue], value ) ) { [i_pause setTextColor:[NSColor blackColor]]; // do something with the value } else { [i_pause setTextColor:[NSColor redColor]]; }}
0
0
0
holdtom
您可以通过以下几行来完成:BOOL valid;NSCharacterSet *alphaNums = [NSCharacterSet decimalDigitCharacterSet];NSCharacterSet *inStringSet = [NSCharacterSet characterSetWithCharactersInString:myInputField.text];valid = [alphaNums isSupersetOfSet:inStringSet]; if (!valid) // Not numeric- 这是用于验证输入仅为数字字符。查看NSCharacterSet其他选项的文档。您可以使用characterSetWithCharactersInString指定任何有效输入字符集。
0
0
0
Qyouu
有几种方法可以做到这一点:使用NSNumberFormatter的numberFromString:方法。如果它可以正确解析字符串,或者不能解析字符串,则返回NSNumber nil。使用NSScanner删除任何非数字字符并查看字符串是否仍然匹配使用正则表达式IMO,使用类似-[NSString doubleValue]将不会是最好的选择,因为两者@"0.0"并@"abc"会有一个0的doubleValue的*值的方法都返回0,如果他们不能将字符串正确转换,所以这将是一个很难区分合法字符串@"0"和无效字符串。像C的strtol功能会有同样的问题。我认为使用NSNumberFormatter是最好的选择,因为它考虑了区域设置(即@"1,23"欧洲的数字,而@"1.23"美国的数字)。
0
0
0
打开App,查看更多内容
随时随地看视频
慕课网APP
相关分类
iOS
Swift
iOS为什么要获取webview内容高度?
1 回答
关于Swift Playgrounds 编程问题?
1 回答
继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续