检查字符串是否包含文本字段中的文本

时间:2016-06-19 13:33:04

标签: swift string textfield

如何检查String(例如"apple")是否包含我在UITextField中输入的文字(例如"p""pp") 。
如果String包含UITextField' text,我想打印一条消息 - 例如:"apple contains pp"

2 个答案:

答案 0 :(得分:2)

你可以这样实现

class youClass: NSObject {
  var yourTextFieldName = UITextField()

   func someMethod() {
     var apple = "apple"
     if apple.containsString(self.yourTextfieldName.text!) {
        print("apple contains \(self.yourTextfieldName.text!)")
     }
   }
}

答案 1 :(得分:0)

您可以延长String

extension String {
  @discardableResult
  func containsText(of textField: UITextField) -> Bool {
    // Precondition
    guard let text = textField.text else { return false }

    let isContained = self.contains(text)
    if isContained { print("\(self) contains \(text)") }
    return isContained
  }
}

它不仅仅打印结果,还会返回Bool,表示textField text中是否包含String @discardableResult。如果您愿意,UITextField属性允许您忽略返回值,而不会生成编译器警告。

您还可以通过扩展extension UITextField { @discardableResult func textIsContained(in target: String) -> Bool { // Precondition guard let text = self.text else { return false } let isContained = target.contains(text) if isContained { print("\(target) contains \(text)") } return isContained } } 来采取相反的方法:

// Your `UITextField`
let textField = UITextField()
textField.text = "pp"

// String extension:
"apple".containsText(of: textField) // returns `true` and prints "apple contains pp"

// UITextField extension:
textField.textIsContained(in: "apple") // returns `true` and prints "apple contains pp"

您可以按如下方式使用这些方法:

{{1}}