检查邮政编码中的字符格式

时间:2013-11-06 11:22:01

标签: ios iphone objective-c ipad postal-code

我正在构建一个表单,并设法对表单中的输入进行排序。我试图做的是当一个条目输入邮政编码时,它会检查以确保它遵循预先确定的格式。 到目前为止,我已经删除了空格,制作了2个字符集,一个是数字值,一个是字母。然后检查字符串长度。如下: -

NSCharacterSet *cset = [NSCharacterSet characterSetWithCharactersInString:@"abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"];
NSCharacterSet *nset = [NSCharacterSet characterSetWithCharactersInString:@"1234567890"];

_QuestionAnswer.text = [_QuestionAnswer.text stringByReplacingOccurrencesOfString:@" " withString:@""]; //removes the space character
if (4 < _QuestionAnswer.text.length < 8) //checks string length between 5 and 7
{
    // this is where the format check should be done using cset and nset
}

NB英国邮政编码必须遵循以下任何一种示例格式: -

AA9A 9AA,

A9A 9AA,

A9 9AA,

A99 9AA,

AA9 9AA,

AA99 9AA,

其中'A'来自cset而'9'来自nset

提前谢谢。

1 个答案:

答案 0 :(得分:1)

您可以使用正则表达式(我只是示例):

NSString *laxString = @".+@([A-Za-z0-9]+\\.)";
NSPredicate *postCodeTest = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", laxString];

return [postCode evaluateWithObject: postCodeTest];