转义 2017-03-30 得到 7-03-30 Javascript

Escaping 2017-03-30 gives 7-03-30 Javascript

我正在尝试输出当前页面 URL 以供 Disqus 评论。由于我的页面 URL 结构如下:

https://www.example.com/post/1234/2017-03-30/

我在转义 2017-03-30 时遇到了一点问题。

不知道以前有没有人问过这个问题,我试着寻找合理的答案,但没有找到。我试图逃避日期,因为像 2017-03-30 一样包含它只会减去它。

这是输出 Javascript:

的 PHP 代码
echo 'this.page.url = "https://www.example.com/post/'. $id . '/\'. $date . '\/";';

尽管输出将是:

this.page.url = "https://www.example.com/post/1234/17-03-30\/";

但问题是 Disqus 会显示 URL 如:

https://www.example.com/post/1234/7-03-30

我知道问题出在 \201 上,但我不知道如何解决它。我尝试了不同的方法。似乎没有任何效果。我在这里几乎迷路了。 :/

在 JavaScript 字符串中,1 是一个八进制转义,为您提供字符 U+0081,这是一个未使用的控制字符,因此不会显示。

如果确实需要反斜杠,您需要对其进行两次转义,以便生成的 JavaScript 看起来像 \2017-03-30\,因此 PHP 需要是 \\'.$date.'\\

不过,当你看到这么多反斜杠时,这肯定表明你做错了什么。