Swift中的两个字符不同(引号与smart/curl引号)



我需要根据搜索字符串过滤Dictionary的数组。在Dictionary中,我有一个键"name",我需要将文本字段中输入的字符串与Dictionary的name键进行比较。

func textChanged(textField: UITextField) {
if textField.text == "" {
self.filteredArrayStoreList = self.arrayStoreList
} else {
self.filteredArrayStoreList.removeAll()
print("Text: (textField.text ?? "")")
let filteredArray = self.arrayStoreList.filter { ($0.name?.contains((textField.text ?? "")))!}
self.filteredArrayStoreList = filteredArray
self.noLocationFoundView.isHidden = true //filteredArrayStoreList.count == 0
}
self.searchLocationTabelView.reloadData()
}

在Dictionary中,名称键值为"Vimal's"。但在文本字段中,我会得到"Vimal的"文本。如何搜索单引号。

'(ascii-39(是正常引号,'被称为"智能"或"卷曲"引号。这句话出现在iOS设备键盘上。用户可以通过设置打开/关闭此功能

设置->常规->键盘->智能标点

这就是不匹配这两个字符串的原因。你可以做两件事来解决你的问题。因为我们不知道应用程序用户的设备是否具有功能

  1. 只需输入字典名称,无需特殊字符
  2. 在检查之前,您可以找到智能/卷曲报价并将其替换为普通报价

这是的例子

let name:String = "vimal‘s" 
print(name.replacingOccurrences(of: "‘", with: "'"))
//result "vimal's"

最新更新