这是如何在swift中检查文本字段是否为空的扩展,而不是重复
给出的答案,
@IBAction func Button(sender: AnyObject) {
if textField1.text != "" {
// textfield 1
}
}
Run Code Online (Sandbox Code Playgroud)
对我来说不起作用,即即使文本字段中没有输入任何内容也会触发if循环.(我已经从原始版本修改了它,因为我只想在字段包含文本时触发代码).
第二个答案
@IBAction func Button(sender: AnyObject) {
if !textField1.text.isEmpty{
}
}
Run Code Online (Sandbox Code Playgroud)
更接近,但它接受像" "
不空的字符串.我可以自己构建一些东西,但有没有一个函数可以检查字符串是否包含空白以外的东西?
aka*_*kyy 115
您应该从空格字符修剪字符串并检查它是否为空:
if !textField1.text.trimmingCharacters(in: .whitespaces).isEmpty {
// string contains non-whitespace characters
}
Run Code Online (Sandbox Code Playgroud)
您也可以使用CharacterSet.whitespacesAndNewlines
删除换行符.
小智 20
下面是我写的扩展程序很好,特别是对于那些来自.NET背景的扩展:
extension String {
func isEmptyOrWhitespace() -> Bool {
if(self.isEmpty) {
return true
}
return (self.stringByTrimmingCharactersInSet(NSCharacterSet.whitespaceCharacterSet()) == "")
}
}
Run Code Online (Sandbox Code Playgroud)
extension String {
func isEmptyOrWhitespace() -> Bool {
// Check empty string
if self.isEmpty {
return true
}
// Trim and check empty string
return (self.trimmingCharacters(in: .whitespaces) == "")
}
}
Run Code Online (Sandbox Code Playgroud)
原始海报的代码正在检查text
可选的文本字段。所以他需要一些代码来检查可选字符串。所以让我们创建一个函数来处理它:
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) == "")
}
}
Run Code Online (Sandbox Code Playgroud)
akashivskyy答案在雨燕3.0:
let whitespaceSet = CharacterSet.whitespaces
if !str.trimmingCharacters(in: whitespaceSet).isEmpty {
// string contains non-whitespace characters
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
26819 次 |
最近记录: |