NSString 验证

发布于 2025-01-05 09:21:28 字数 311 浏览 1 评论 0原文

我需要验证用户在某些 UITextField 中输入的一些 NSString。

我需要两种验证。

1、判断一个NSString对象是否是合法的十进制数。

例如,@“100”、@“10.1”、@“0.11”都是合法的,但@“100.11.1”则不合法。

2、判断一个NSString对象是否不是一个只有空格的字符串。

例如,@“abc”、@“ab----c”都是合法的,但@“-----”、@“”则不合法。

这里的“-”表示空格“”。

如何验证这两种 NSString?

多谢!

I need to validate some NSString that user inputs in some UITextField.

There are 2 kinds of validation I need.

1st, to judge whether a NSString object is a legal decimal number.

For example, @"100", @"10.1",@"0.11", are all legal, but @"100.11.1" is not.

2nd, to judge whether a NSString object is not a space-only string.

For example, @"abc", @"ab----c", are all legal, but @"-----", @"", are not.

here "-" means a space " ".

How can I validate these 2 kinds of NSString?

Thanks a lot!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

飞烟轻若梦 2025-01-12 09:21:28

对于第一部分,请尝试以下

NSNumberFormatter *formatter = [[[NSNumberFormatter alloc] init] autorelease];
[formatter setNumberStyle:NSNumberFormatterDecimalStyle];
[formatter setAllowsFloats:YES];
[formatter setDecimalSeparator:@"."];

NSNumber *number = [formatter numberFromString: inputString];

if(number == nil)
{
  //invalid input string
}

对于第二部分,请尝试以下:

NSString *str = [inputString stringByReplacingOccurrencesOfString:@" " withString:@""];
if([str length] == 0)
{
    //invalid input string
}

For the first part try this

NSNumberFormatter *formatter = [[[NSNumberFormatter alloc] init] autorelease];
[formatter setNumberStyle:NSNumberFormatterDecimalStyle];
[formatter setAllowsFloats:YES];
[formatter setDecimalSeparator:@"."];

NSNumber *number = [formatter numberFromString: inputString];

if(number == nil)
{
  //invalid input string
}

For the second part try this:

NSString *str = [inputString stringByReplacingOccurrencesOfString:@" " withString:@""];
if([str length] == 0)
{
    //invalid input string
}
亣腦蒛氧 2025-01-12 09:21:28

对于第一次验证,您可以计算小数点。零有效。任何大于 1 的值都是无效的。并且 1 始终有效(假设“.123”有效)。

对于第二次验证,您可以将空字符串 @"" 与删除所有空格的原始字符串进行比较。如果它们相等,那么您的原始字符串无效。

搜索周围SO。例如,NSString 中字符出现的次数可能会有所帮助。

For the first validation you can count the decimal points. Zero is valid. Anything greater than one is invalid. And one is always valid (assuming ".123" is valid).

For the second validation you can compare the empty string @"" to the original string with all space(s) removed. If they're equal then your original string was invalid.

Search around SO. For example Number of Occurrences of a Character in NSString could be helpful.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文