0

コードスニペット

   NSString *myRegex = @"[A-Z0-9a-z]*";
    NSPredicate *myTest = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", myRegex];
    NSString *string = [NSString stringWithString:NewPassword.text];
    BOOL valid = [myTest evaluateWithObject:string];

私はabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890 それらのものだけを検証したい

顧客が特殊文字 (@、#、&、.、}、{、*、: など) を入力するとします。文字を検証して受け入れる必要はありません

元 :

パスワード : 1234567 パスワード : qwerty - アラートを表示する必要があります

欲望の出力: パスワード: 123qwerty45 - アラートを表示する必要はありません

パスワード : 1234qwer@#$% -パスワードを受け入れる

特殊文字をチェックする必要はありません

前もって感謝します

4

6 に答える 6

2

次の方法で試してください。

- (BOOL)textField:(UITextField *)field shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)characters
{
    if ([replacementString rangeOfCharacterFromSet:[[NSCharacterSet alphanumericCharacterSet] invertedSet]].location != NSNotFound) {
        // There are non-alphanumeric characters in the replacement string
     }
}
于 2013-09-06T12:00:29.597 に答える
0
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
{



    NSCharacterSet *ss = [[NSCharacterSet alphanumericCharacterSet]invertedSet];


    if ([string isEqualToString:@""]) 
    {

        NSString *trimmedReplacement =
        [[ string  componentsSeparatedByCharactersInSet:ss]
         componentsJoinedByString:@""];

    }
    else 
    {
        return ([string stringByTrimmingCharactersInSet:ss].length > 0);
    }

}

return YES;
}

それが機能しているかどうかを教えてください!!

ハッピーコーディング!!!

于 2013-09-06T12:04:59.363 に答える
0

次の方法が役立つ場合があります。

NSString *string = iTextField.text;
NSCharacterSet *alphanumSet = [NSCharacterSet alphanumCharSet];
NSCharacterSet *numberSet = [NSCharacterSet decimalDigitCharSet];
BOOL isValid= [[string stringByTrimmingCharactersInSet:alphanumSet] isEqualToString:@""] && ![[string stringByTrimmingCharactersInSet:numberSet] isEqualToString:@""];
于 2013-09-06T12:02:00.233 に答える
0

**shouldChangeCharactersInRange**テキストフィールドへのデータ入力を制限するには、メソッドで定義する必要があります

#define VALID_CHARECTERS @"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"

- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
{
   NSCharacterSet *validInput = [NSCharacterSet characterSetWithCharactersInString:VALID_CHARECTERS];

   if (![[string componentsSeparatedByCharactersInSet:avalidInput] count] > 1)
      return NO;
   else
      return YES;
}

VALID_CHARECTERS には、含めたいものを何でも指定できます

于 2013-09-06T12:02:02.420 に答える
0

#$% が必要な特殊文字であると仮定します。少なくとも 1 つの特殊文字が必要で、英数字と混在させることができます。

正規表現は次のようになります: ([A-Z0-9a-z]*(#|$|%)+[A-Z0-9a-z]*)+

于 2013-09-06T12:02:40.827 に答える