javascript - 如何在 Swift 中创建 Javascript 安全字符串?

标签 javascript swift

评估 Javascript 时,例如:

self.evaluateJavaScript("window.messenger.sendMessage('\(message)');

如何确保消息是 String 类型,可以安全地传递到此方法中?我可以想象引用或换行符已经把事情搞砸了。

最佳答案

extension String {
    var javaScriptString: String {
        var safeString  = self as NSString

        safeString      = safeString.stringByReplacingOccurrencesOfString("\\", withString: "\\\\")
        safeString      = safeString.stringByReplacingOccurrencesOfString("\"", withString: "\\\"")
        safeString      = safeString.stringByReplacingOccurrencesOfString("\'", withString: "\\\'")
        safeString      = safeString.stringByReplacingOccurrencesOfString("\n", withString: "\\n")
        safeString      = safeString.stringByReplacingOccurrencesOfString("\r", withString: "\\r")
        safeString      = safeString.stringByReplacingOccurrencesOfString("\t", withString: "\\t")

        safeString      = safeString.stringByReplacingOccurrencesOfString("\u{0085}", withString: "\\u{0085}")
        safeString      = safeString.stringByReplacingOccurrencesOfString("\u{2028}", withString: "\\u{2028}")
        safeString      = safeString.stringByReplacingOccurrencesOfString("\u{2029}", withString: "\\u{2029}")

        return safeString as String
    }
}

关于javascript - 如何在 Swift 中创建 Javascript 安全字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33167450/

相关文章:

javascript - 限制在一个div内拖动,在受限的div内限制一定高度?

ios - 使用 ReactiveCocoa 4 的简单 UIGestureRecogniser 示例

ios - Swift 编译器错误 : Missing required modules;

javascript - 让广告分区完全可见

JavaScript 动画回退

Swift 和 objective-git : Overloads for 'createCommitWithTree' exist with these partially matching parameter lists

Swift - SpriteKit - 在永远运行时更新 SKAction.waitForDuration

ios - 如何使用 MetalPetal 遮盖图像并以透明方式输出

javascript - Android 上的 React Native 找不到构建工具

javascript - 主干测试 - 在 "change"元素上触发 'select' 事件