gpt4 book ai didi

ios - UITextField 只允许字母和数字

转载 作者:可可西里 更新时间:2023-11-01 03:35:29 28 4
gpt4 key购买 nike

我有一个注册 View Controller ,用户需要在其中输入电子邮件地址、用户名和密码。

对于用户名和密码字段,目前您可以使用“user%$&”这样的用户名和“password%^&$”这样的密码进行注册。我不希望人们能够使用这些特殊字符。

我想让用户名和密码字段只能使用字母数字字符(即字母和数字)提交。我找到了一些方法来执行此操作,但它们令人困惑,我需要它来专门处理我的代码。

这是我在用户输入电子邮件、用户名和密码并按下提交按钮时执行的一些代码:

NSString *user = [_usernameEntry text];
NSString *pass = [_passwordEntry text];
NSString *email = [_emailEntry text];

self.userSubmittedUsername = user;

if ([user length] < 4 || [pass length] < 4) {

UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Invalid Entry" message:@"Username and Password must both be at least 4 characters long." delegate:self cancelButtonTitle:@"Okay" otherButtonTitles:nil];

[alert show];

} else if ([email length] < 8) {

UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Invalid Entry" message:@"Please enter your email address." delegate:self cancelButtonTitle:@"Okay" otherButtonTitles:nil];

[alert show];

} else {

我只想在上面的代码中添加另一个 else if,如果有任何不是字母或数字的字符,它会显示一个警告 View 。

谢谢。

最佳答案

如果你真的想限制用户输入特殊字符,那么最好的方法可能是使用shouldChangeCharactersInRange:方法

-(BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
{
if(textField==YOUR_USER_NAME_TEXTFIELD || textField == YOUR_PASSWORD_TEXTFIELD)
{

NSCharacterSet *myCharSet = [NSCharacterSet characterSetWithCharactersInString:@"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"];
for (int i = 0; i < [string length]; i++)
{
unichar c = [string characterAtIndex:i];
if (![myCharSet characterIsMember:c])
{
return NO;
}
}

return YES;
}

return YES;
}

这将限制用户输入特殊字符。正如 rmaddy 所指出的,在数据​​输入发生时进行这种验证总是好的。

PS:确保为文本字段设置委托(delegate)。

关于ios - UITextField 只允许字母和数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22264906/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com