检查 NSString 是否只是字母 [英] Check if NSString is only letters

查看:63
本文介绍了检查 NSString 是否只是字母的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

确保 NSString 仅包含字母 a-z 和 A-Z 的最佳方法是什么.

What's the best way to make sure an NSString contains only the letters a-z and A-Z.

我已经尝试了以下代码,但由于某种原因它不起作用:

I've tried the following code but it's not working for some reason:

NSString *myegex = @"[A-Za-z]";
NSPredicate *emailTest = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", myregex];
if (![emailTest evaluateWithObject:self.initials.text])  {
     // print error
     return;
}

推荐答案

您可以通过创建自己的 NSCharacterSet 然后使用 rangeOfCharacterFromSet 对照该集合检查字符串来以更简单的方式完成此操作:

You can do it in a simpler way by creating your own NSCharacterSet then checking the string against that set with rangeOfCharacterFromSet:

//Create character set
NSCharacterSet *validChars = [NSCharacterSet characterSetWithCharactersInString:@"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"];

//Invert the set
validChars = [validChars invertedSet];

//Check against that
NSRange  range = [myString rangeOfCharacterFromSet:validChars];
if (NSNotFound != range.location) {

 //invalid chars found

}

这篇关于检查 NSString 是否只是字母的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆