0
NSRegularExpression* regExp = [[NSRegularExpression alloc]
   initWithPattern:@"^[-+s]*[0-9s]+$"` options:NSRegularExpressionCaseInsensitive
    error:nil]; 

我用了上面的表达。但它接受+and-值。但问题是,它在整数前接受多个符号。

  1)+++++12
  2)--++12

这些案件也被接受。

可以使用什么,它应该只接受整数前的一个符号?提前致谢

4

2 回答 2

4

我想你正在寻找@"^[-+]?[0-9]+$".


更新

我认为您正在使用 's' 来匹配空格。那不管用。

@"^\\s*[-+]?\\s*[0-9]+\\s*$"将匹配加号/减号之前、加号/减号和数字之间以及数字之后的空格。


注意:a?匹配前面的组中的 0 个或 1 个,在本例中为 [-+]。


更新:感谢@ValeriyVan 建议解决一个关键问题是我的空白代码。我不知道为什么社区拒绝了您的编辑。

于 2012-12-14T13:32:08.410 回答
1

以下代码用于检查整数值。

- (BOOL) validateIntegerValue: (NSString *) candidate {
    NSString *Regex = @"^[+-]{0,1}[0-9]+$";
    NSPredicate *intTest = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", Regex];
    return [intTest evaluateWithObject:candidate];
}
于 2012-12-14T13:38:24.243 回答