2

ユーザー名フィールドを保持する 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 つに連結することです。誰もがそれに対するエレガントなソリューションを知っていますか? もちろん、それは複数の場所で機能します.

どうもありがとう、よろしく、マルコス

4

1 に答える 1