trimmingCharacters 不适用于 iOS 10.3 Xcode8.3
trimmingCharacters not work on iOS 10.3 Xcode8.3
请帮帮我,我用的是Xcode8.3(swift3.1),函数trimmingCharacters
不行。我的代码如下:
func textField(_ textField: UITextField, shouldChangeCharactersIn range: NSRange, replacementString string: String) -> Bool {
if var searchStr = textField.text{
let _searchStr = searchStr.trimmingCharacters(in: .whitespaces)
print("After trimming:\(_searchStr)")
}
}
文本框输入409 huỳnh
,打印结果409 huỳnh
与预期不符:409huỳnh .
来自文档:
A new string made by removing from both ends of the receiver characters contained in set.
它不会删除字符串中的字符。
可以用正则表达式替换字符串中对应.whitespaces
字符集的空格:
let _searchStr = searchStr.replacingOccurrences(of: "\s", with: "", options: .regularExpression)
您可以使用
let trimmedString = searchStr.stringByReplacingOccurrencesOfString(" ", withString: "")
希望对您有所帮助!
trimmingCharacters
仅删除前导和尾随空格。
试试这个
let _searchStr = searchStr.replacingOccurrences(" ", withString: "", options:.literal, range: nil)
在Swift3你可以使用下面的代码来解决问题
let _searchStr = searchStr.replacingOccurrences(of: " ", with: "")
Swift 4 备选方案
因为 Swift 4 个字符串再次成为序列。您可以使用过滤器来做到这一点。
let _searchStr = searchStr.filter({ " ".contains([=10=]) == false })
您可以使用 Swift 5 个字符 属性 isWhitespace
并从您的字符串中过滤所有非空格:
let string = "409 huỳnh"
let result = string.filter { ![=10=].isWhitespace }
print(result) // "409huỳnh"
请帮帮我,我用的是Xcode8.3(swift3.1),函数trimmingCharacters
不行。我的代码如下:
func textField(_ textField: UITextField, shouldChangeCharactersIn range: NSRange, replacementString string: String) -> Bool {
if var searchStr = textField.text{
let _searchStr = searchStr.trimmingCharacters(in: .whitespaces)
print("After trimming:\(_searchStr)")
}
}
文本框输入409 huỳnh
,打印结果409 huỳnh
与预期不符:409huỳnh .
来自文档:
A new string made by removing from both ends of the receiver characters contained in set.
它不会删除字符串中的字符。
可以用正则表达式替换字符串中对应.whitespaces
字符集的空格:
let _searchStr = searchStr.replacingOccurrences(of: "\s", with: "", options: .regularExpression)
您可以使用
let trimmedString = searchStr.stringByReplacingOccurrencesOfString(" ", withString: "")
希望对您有所帮助!
trimmingCharacters
仅删除前导和尾随空格。
试试这个
let _searchStr = searchStr.replacingOccurrences(" ", withString: "", options:.literal, range: nil)
在Swift3你可以使用下面的代码来解决问题
let _searchStr = searchStr.replacingOccurrences(of: " ", with: "")
Swift 4 备选方案
因为 Swift 4 个字符串再次成为序列。您可以使用过滤器来做到这一点。
let _searchStr = searchStr.filter({ " ".contains([=10=]) == false })
您可以使用 Swift 5 个字符 属性 isWhitespace
并从您的字符串中过滤所有非空格:
let string = "409 huỳnh"
let result = string.filter { ![=10=].isWhitespace }
print(result) // "409huỳnh"