检查Swift文本字段是否包含非空格

时间:2015-01-04 17:07:22

标签: swift

这是How to check if a text field is empty or not in swift

的扩展,而非重复

给出的答案,

@IBAction func Button(sender: AnyObject) {
    if textField1.text != ""  {
        // textfield 1 
    }
}

对我不起作用,即即使在文本字段中没有输入任何内容,也会触发if循环。 (我已经从原版修改了它,因为我只想在字段包含文本时触发代码)。

第二个答案

@IBAction func Button(sender: AnyObject) {
    if !textField1.text.isEmpty{

    }
}

更接近,但它接受像" "这样的字符串不为空。我可以自己构建一些东西,但是有一个函数可以检查字符串是否包含空白以外的东西吗?

10 个答案:

答案 0 :(得分:97)

您应该从空格字符修剪字符串并检查它是否为空:

if !textField1.text.trimmingCharacters(in: .whitespaces).isEmpty {
    // string contains non-whitespace characters
}

您也可以使用CharacterSet.whitespacesAndNewlines删除换行符。

答案 1 :(得分:19)

下面是我编写的扩展程序,它可以很好地工作,特别是对于那些来自.NET背景的扩展程序:

extension String {
    func isEmptyOrWhitespace() -> Bool {

        if(self.isEmpty) {
            return true
        }

        return (self.stringByTrimmingCharactersInSet(NSCharacterSet.whitespaceCharacterSet()) == "")
    }
}

答案 2 :(得分:4)

Swift 3.0

中的

akashivskyy answer

let whitespaceSet = CharacterSet.whitespaces
if !str.trimmingCharacters(in: whitespaceSet).isEmpty {
  // string contains non-whitespace characters
}

答案 3 :(得分:3)

extension StringProtocol where Index == String.Index {
    var isEmptyField: Bool {
        return trimmingCharacters(in: .whitespaces) == ""
    }
}


if yourTextField.text.isEmptyField {
    // Field is empty
} else {
    // Field is NOT empty
}

答案 4 :(得分:2)

快速解答4:

extension String {
    func isEmptyOrWhitespace() -> Bool {
        if(self.isEmpty) {
            return true
        }
        return (self.trimmingCharacters(in: NSCharacterSet.whitespaces) == "")
    }
}

答案 5 :(得分:1)

在Swift 3.0中回答

if stringValue.trimmingCharacters(in: CharacterSet.whitespaces).isEmpty
{}

答案 6 :(得分:1)

雨燕4.2

字符串扩展名为空或空格

extension String {
    func isEmptyOrWhitespace() -> Bool {

        // Check empty string
        if self.isEmpty {
            return true
        }
        // Trim and check empty string
        return (self.trimmingCharacters(in: .whitespaces) == "")
    }
}

原始发布者的代码在可选的文本字段上检查text。因此,他将需要一些代码来检查可选字符串。因此,我们也创建一个函数来处理该问题:

可选字符串的扩展名是nil,空或空格

extension Optional where Wrapped == String {
    func isEmptyOrWhitespace() -> Bool {
        // Check nil
        guard let this = self else { return true }

        // Check empty string
        if this.isEmpty {
            return true
        }
        // Trim and check empty string
        return (this.trimmingCharacters(in: .whitespaces) == "")
    }
}

答案 7 :(得分:0)

回答 Swift 3。* ,考虑换行,标签

extension String {

    var containsNonWhitespace: Bool {
        return !self.trimmingCharacters(in: .whitespacesAndNewlines).isEmpty
    }

}

答案 8 :(得分:0)

迅速4.2

@IBAction func checkSendButton(_ sender: UITextField) {
    if((sender.text?.count)! > 0 && !(sender.text!.trimmingCharacters(in: .whitespaces)).isEmpty){
        self.sendButton.isEnabled = true
    }
    else{
        self.sendButton.isEnabled = false
    }
}

答案 9 :(得分:0)

在需要演示的情况下回答图片

// MY FUNCTIONS
private func checkMandatoryFields(){

    //CHECK EMPTY OR SPACES ONLY FIELDS
    if let type = typeOutle.text, let name = nameOutlet.text, let address = addressOutlet.text, type.trimmingCharacters(in: .whitespaces).isEmpty || name.trimmingCharacters(in: .whitespaces).isEmpty || address.trimmingCharacters(in: .whitespaces).isEmpty {
        print("Mandatory fields are: ")
        errorDisplay(error: "Mandatory fields are: Type, Name, Address.")
        return
    }

}

enter image description here