查找在文本字段中输入的特殊字符,然后迅速进行转义

时间:2019-05-10 14:27:39

标签: ios swift uitextfield

我的要求是根据在JSON中输入的文本创建一个UITextFieldUITextField没有限制。因此,如果用户输入特殊字符(“,\等),我想转义输入的值并创建一个JSON

  

字符串文字可以包含以下特殊字符:

     
      
  • 转义的特殊字符\ 0(空字符),\(反斜杠),\ t(水平制表符),\ n(换行符),\ r(回车符),\“   (双引号)和\'(单引号)
  •   
  • 任意Unicode标量,写为\ u {n},其中n是1–8位数的十六进制数字,其值等于有效的Unicode代码   点
  •   

例如,如果用户输入"Hello "User"! How to use a \ in a JSON?"。它应该返回类似"Hello \"User\"! How to use a \\ in a JSON?"的内容。不只是“或\”,我还要转义所有特殊字符。

谢谢!非常感谢您为我提供解决方案的努力。

修改 我忘了提一下,这个要求是Swift 4.2的。

1 个答案:

答案 0 :(得分:1)

请勿“手动”转义字符以创建JSON。为此,有一个专用的JSONEncoder()类。

顶级JSON对象只能是数组或字典。这是一个包含具有给定字符串的单个元素的数组的示例:

let text = """
    Hello "User"! How to use a \\ in a JSON?
    Another line line
    """

do {
    let jsonData = try JSONEncoder().encode([text])
    let jsonString = String(data: jsonData, encoding: .utf8)!
    print(jsonString)
} catch {
    print(error.localizedDescription)
}

输出为

["Hello \"User\"! How to use a \\ in a JSON?\nAnother line"]