【问题标题】:how to not allowed spaces in text field如何在文本字段中不允许空格
【发布时间】:2017-09-27 14:11:02
【问题描述】:

这是我的代码我希望用户名不要有空格和小写 示例(wizkhalifa)

    func textField(_ textFieldToChange: UITextField, shouldChangeCharactersIn range: NSRange, replacementString string: String) -> Bool {
            if textFieldToChange == username {
                let characterSetNotAllowed = CharacterSet.whitespaces
                if let _ = string.rangeOfCharacter(from:NSCharacterSet.uppercaseLetters) {
                    return false
                }
                if let _ = string.rangeOfCharacter(from: characterSetNotAllowed, options: .caseInsensitive) {
                    return false
                } else {
                    return true
                }
}

 if  UserNameField.text != nil, emailField.text != nil, passwordField.text != nil, rePassword.text != nil && passwordField.text == rePassword.text {
                Auth.auth().createUser(withEmail: emailField.text!, password: passwordField.text!, completion: { (user, error) in
                    if error != nil {
                        AlertController.showAlert(self, titel: "Error", message: " Fill all fields \nUser exists  ")
                        return
                    }

【问题讨论】:

    标签: swift xcode namespaces uitextfield lowercase


    【解决方案1】:

    您需要检查 2 件事,您可以在尝试创建用户和/或用户键入时调用的方法中进行检查。

    首先检查,空格:

    if let text = UserNameField.text {
        if text.components(separatedBy: " ").count > 1 && text.lowercased() != textField.text {// add your other tests on this line
            // the text is in lowercase without space character and your tests pass
            Auth.auth().createUser(withEmail: emailField.text!, password: passwordField.text!, completion: { (user, error) in
                 // check if there is an error
            })
        } else {
            AlertController.showAlert(self, titel: "Error", message: " Fill all fields \nUser exists  ")
    
    }
    

    这是 OP 的版本及其代码:

    if  UserNameField.text != nil, emailField.text != nil, passwordField.text != nil, rePassword.text != nil && passwordField.text == rePassword.text && UserNameField.text.components(separatedBy: " ").count <= 1 && UserNameField.text.lowercased() == UserNameField.text {
        Auth.auth().createUser(withEmail: emailField.text!, password: passwordField.text!, completion: { (user, error) in
            if error != nil {
                AlertController.showAlert(self, title: "Error", message: " Fill all fields \nUser exists  ")
                return
            } else {
                // all good
            }
        })
    } else {
        AlertController.showAlert(self, title: "Error", message: " Fill all fields \nUser exists  ")
    }
    

    【讨论】:

    • 对不起,你能给我一个活生生的例子吗?请问我如何将这些行附加到一个文本字段
    • 我用你的变量名编辑了我的答案,只是使用那个代码
    • 您遇到的错误是由于可选类型,?表示该值可以是 nil 或定义类型的任何值。您必须打开它:我在答案中编辑了代码。您可能应该去查看有关如何开始在 swift 中开发的教程(例如 apple developer.apple.com/library/content/referencelibrary/… 的这篇教程),还有文档 ibooks
    • 我编辑了我的答案,检查代码。如果您的测试通过,您调用 firebase 方法,如果它们没有通过,您调用警报。在学习如何使用第三方库和其他东西之前,你真的应该看看关于编程的基本教程,条件语句是你编程的第一步。
    • 答案已编辑。在进行此类项目之前,请先学习基本开发。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-04-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多