【发布时间】:2018-02-28 19:18:36
【问题描述】:
我有一个如下所示的对象:
obj = {book: `{title: "${this.book.title}"}`}
this.book.title 是一个字符串,可以包含未转义的单引号 ' 或双引号 "。
因此,如果标题包含“This is a "book"”,那么obj 将无效,因为它看起来像:
obj = {book: `{title: "This is a "book""}`}
有没有比this.book.title = this.book.title.replace(/(['"])/g, "\\$1"); 转义引号更好的方法?
【问题讨论】:
-
期望的最终结果是什么?
-
您的代码实际上创建了一个具有
book属性的对象,该属性的值是一个字符串(反引号就是这样做的)。 -
@JordanRunning 想要的结果是
obj在语法上是正确的,我可以访问 obj.book 来检索字符串。 -
你也可以在里面存储base64编码的字符串,然后在需要读取的时候解码。
-
如果您真的想要这样的字符串,只需执行
obj = {book: JSON.stringify(this.book)};,但我会检查您为什么这样做。当然,这将使您获得this.book上的所有属性。