ios - 如何为名称验证创建正则表达式

标签 ios objective-c iphone regex xcode

我想制作一个用户只能输入字母的正则表达式。

我正在使用这段代码来验证 UITextField

我正在验证 shouldChangeCharactersInRange 方法中的代码。

 NSString *regex = @"[a-zA-Z]";
NSPredicate *testRegex = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", regex];

if(![testRegex evaluateWithObject:string])
    return NO;

它工作正常,但我无法使用 BacKspace 按钮删除,因为我的 RegEx 不允许这样做。

如何制作一个支持字母并允许删除的正则表达式。

最佳答案

试试这个:

- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)iRange replacementString:(NSString *)iText {
    NSString *newString = [iTextView.text stringByReplacingCharactersInRange:iRange withString:iText];
    NSString *abnRegex = @"[A-Za-z]+";
    NSPredicate *abnTest = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", abnRegex];
    return ([abnTest evaluateWithObject:newString] || newString.length == 0);
}

关于ios - 如何为名称验证创建正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33233470/

相关文章:

ios - 如何在phonegap中隐藏ios滚动条

c++ - 如何从 Objc 文件调用 Object-c++ 文件中的函数?

ios - 选择文本字段时使 UICollectioView 滚动

ios - 为什么 MKMapView 不显示当前位置红色图钉?

iphone - 在 Swift 中以编程方式将类添加到 UIbutton

iOS Swift 过滤器和生成模型需要太多时间

iphone - 将 Game Center 的回合制比赛用于俄罗斯方 block 或 gem 迷阵等游戏

ios - CGContextDrawPDFPage 内存泄漏 - 应用程序崩溃

iphone - iPad 模态视图 Controller 以纵向方式运行,即使它是横向的

ios - TableView 未显示值