Swift 3 - 将文本字段限制为字母数字(带空格和连字符)

标签 swift input whitespace textfield alphanumeric

想要将文本域输入限制为仅 A-Z、a-z、0-9、""和 -。目前有:

func textField(_ textField: UITextField, shouldChangeCharactersIn range: NSRange, replacementString string: String) -> Bool
    {
        if self.isNumericTextInput{
            let allowedCharacters = CharacterSet.decimalDigits
            let characterSet = CharacterSet(charactersIn: string)
            if allowedCharacters.isSuperset(of: characterSet) && returnFlag{
                return true
            } else{
                return false
            }

        } else{
            // Allow only alphanumerics, whitespace and hyphens
        }
        return
    }

最佳答案

虽然回答晚了,但可能对某人有用。

swift 3:

func textField(_ textField: UITextField, shouldChangeCharactersIn range: NSRange, replacementString string: String) -> Bool {
    /// 1. replacementString is NOT empty means we are entering text or pasting text: perform the logic
    /// 2. replacementString is empty means we are deleting text: return true
    if string.characters.count > 0 {
        var allowedCharacters = CharacterSet.alphanumerics
        allowedCharacters.insert(charactersIn: " -") // "white space & hyphen" 

       let unwantedStr = string.trimmingCharacters(in: allowedCharacters)
       return unwantedStr.characters.count == 0
    }

    return true
}

注意:这也适用于将字符串粘贴到文本字段中。如果粘贴的字符串包含不需要的字符,则不会在文本字段中显示。

关于Swift 3 - 将文本字段限制为字母数字(带空格和连字符),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44123918/

相关文章:

ios - 在 Swift/Xcode 6 中返回设置包开关的值

ios - 如何制作个人资料屏幕

language-agnostic - 所有空白字符?语言独立吗?

php - 解压缩或膨胀 php ://input stream?

javascript - 在 JS 中获取 HTML 输入字段中的书面文本

testing - 如何测试 cucumber 表中未修剪的值

html - 如何确保 div 之间永远没有空格?

ios - IBAction 事件含义

ios - Xcode:威胁 1:Sigabrt 错误

assembly - NASM 键盘仿真