【发布时间】:2012-01-02 14:36:12
【问题描述】:
对于任何感兴趣的人,我最终在这里构建了一个“本地存储过期”脚本,http://plugins.jquery.com/project/localcache
我在做什么:为存储构建一个扩展,以便用户可以这样做:
localStorage.setThing(key, value)
并且用户可以执行以下操作:
localStorage.setThing("key1", 1)
localStorage.setThing("key2", "this is a string")
localStorage.setThing("key3", { prop1: "this is a json obj" })
在我的 setThing 方法中,我正在检查 typeof 的值,如果是 typeof value == "object",我将其存储为 localStorage.setItem(key, JSON.stringify(value))
在 getThing 方法中,我知道将其放入 localStorage 的值始终是字符串。那么,我该怎么做呢?
var val = localStorage.getItem("key3")
if (val is a previously JSON.stringify'd object) // <-- ??
return JSON.parse(val)
我是否需要对 val 进行正则表达式检查,如果需要,是否有人有方便的模式告诉我字符串是否真的是 JSON.stringify 对象?
谢谢!
【问题讨论】:
-
试试 EAFP - 请求宽恕比获得许可更容易) - pattern [Grace Hopper],另见:en.wikipedia.org/wiki/Python_syntax_and_semantics#Exceptions。
标签: javascript jquery json local-storage