Search code examples
iosswiftstringxcode8ios10.3

trimmingCharacters not work on iOS 10.3 Xcode8.3


Please help me, I use Xcode 8.3(swift 3.1), the function trimmingCharacters not work. My code as below:

    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)")
   }
}

The input in textfield is 409 huỳnh and the print result is 409 huỳnh not as expected: 409huỳnh .


Solution

  • From the documentation:

    A new string made by removing from both ends of the receiver characters contained in set.

    It does not remove characters within the string.

    You can replace whitespaces – corresponding to the .whitespaces character set – in the string with regular expression:

    let _searchStr = searchStr.replacingOccurrences(of: "\\s", with: "", options: .regularExpression)