同じ 2 文字が連続して使用できないように文字列をチェックする方法がわかりません。
誰も「00」でデータを送信できないようにしたいです。
ただどうですか:
(\d)\1+
は\d
任意の数字\1+
に一致し、 は最初のビットが複数回出現する場合に一致したものすべてに一致します。
ただし、コメントに関しては、確認するだけの方がはるかに簡単です。
if ([expiryDate rangeOfString:@"00"].location != NSNotFound)
{
//Invalid date
}
または、さらに検証する:
NSArray *components = [expiryDate componentsSeparatedByString:@"/"];
int month = [components[0] intValue];
int year = [components[1] intValue];
NSAssert(month > 0 && month <= 12, @"Invalid Month");
NSAssert(year >= 13 /*current year*/ /* (optionally) && year < 20 (or some other future year)*/, @"Invalid year");