如何检查textField视图是否为空或不包含空格?

3
textField.text.isEmpty
textField.text != ""

这两个函数将空格视为字符。然而,我希望我的函数能够识别文本字段没有空格或不为空的情况。

1
你可能想要“修剪”空格,就像这个链接中的例子一样:https://dev59.com/_l8d5IYBdhLWcg3wcx9V - Pieter21
Trim方法从字符串的开头和结尾删除空格和换行符。这就是您要寻找的吗?请查看:Swift中的String是否有Trim方法? - Tiago Luz
@Pieter21,这很好,谢谢! - user6401887
3个回答

7

只需检查修剪后的字符串是否为空

let isEmpty = str.stringByTrimmingCharactersInSet(.whitespaceAndNewlineCharacterSet()).isEmpty

你甚至可以将它放在 String 扩展中:
extension String {
    var isReallyEmpty: Bool {
        return self.stringByTrimmingCharactersInSet(.whitespaceAndNewlineCharacterSet()).isEmpty
    }
}

它甚至可以处理像 var str = " ​ " 这样的字符串(其中包含空格、制表符和零宽度空格)。

然后只需检查 textField.text?.isReallyEmpty ?? true

如果你想更进一步(我不建议),将其添加到 UITextField 扩展中:

extension UITextField {
    var isReallyEmpty: Bool {
        return text?.stringByTrimmingCharactersInSet(.whitespaceAndNewlineCharacterSet()).isEmpty ?? true
    }
}

你的代码变成了textField.isReallyEmpty


6
在Swift 4中,
extension String {
    var isReallyEmpty: Bool {
        return self.trimmingCharacters(in: .whitespaces).isEmpty
    }
}

0

我使用了@Pieter21提供的链接。 它可以处理用户输入的任意数量的空格。

let myString = TextField.text

let trimmedString = myString!.stringByTrimmingCharactersInSet(
    NSCharacterSet.whitespaceAndNewlineCharacterSet()
)

if trimmedString != "" {
    // Code if not empty
} else {
    // Code if empty
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接