ユーザー名フィールドを保持する UITextfield があり、検証を追加して、ユーザーが文字、数字、および「_-」とは異なるユーザー名を入力できないようにしたいと考えています。句読点。私はそれを行うために NSCharacterset を使用しようとしていますが、成功していません。
NSScanner *scanner = [NSScanner scannerWithString:username];
NSCharacterSet *letterCharacterSet = [NSCharacterSet letterCharacterSet];
NSCharacterSet *decimalDigitCharacterSet = [NSCharacterSet decimalDigitCharacterSet];
NSCharacterSet *customPunctuationCharacterSet = [NSCharacterSet characterSetWithCharactersInString:@"_-."];
if (![scanner scanCharactersFromSet:letterCharacterSet intoString:NULL] &&
![scanner scanCharactersFromSet:customPunctuationCharacterSet intoString:NULL]&&
![scanner scanCharactersFromSet:decimalDigitCharacterSet intoString:NULL]){
*error = [ScreenValidation createNSError:1 message:@"You can only use letters, numbers and punctuation marks."];
return NO;
}
上記のコードの結果が正しくないことに気付きました。私がしなければならないことは、検証を実行するためにすべての NSCharacterSet を 1 つに連結することです。誰もがそれに対するエレガントなソリューションを知っていますか? もちろん、それは複数の場所で機能します.
どうもありがとう、よろしく、マルコス