检查NSString是否包含任何数字,且长度至少为7个字符

时间:2012-10-20 03:10:33

标签: ios objective-c regex

所以我想我需要一个正则表达式语句才能做到这一点,但我还没有用目标c做任何正则表达式,而且我还没有在一年内编写正则表达式语句。

我认为应该是((?=。* [0-9])。{7,1000})

如何将其置于客观的c字符串比较中并评估结果?

我的正则表达式也正确吗?

1 个答案:

答案 0 :(得分:65)

虽然正则表达式可能有用,但还有另一种方法:

NSString *str = // some string to check for at least one digit and a length of at least 7
if (str.length >= 7 && [str rangeOfCharacterFromSet:[NSCharacterSet decimalDigitCharacterSet]].location != NSNotFound) {
    // this matches the criteria
}

此代码实际上检查的不仅仅是0-9。它也处理来自其他语言的数字。如果你真的只想要0-9那么替换:

[NSCharacterSet decimalDigitCharacterSet]

使用:

[NSCharacterSet characterSetWithCharactersInString:@"0123456789"];