反斜杠在JavaScript中被解释为控制字符

时间:2014-04-10 06:58:59

标签: javascript regex latex tex

我已从服务器获得 LaTex 代码,并且无法控制。我想打印LaTex代码,因为它使用JavaScript,但它在分配给变量时解释为控制字符。

var str = '\[\frac{{{d^2}y}}{{d{x^2}}} - \,3\,\left( {\frac{{dy}}{{dx}}} \right)\, + \,2y\, = \,0\]';

这解释如下

[rac{{{d^2}y}}{{d{x^2}}} - ,3,left( {rac{{dy}}{{dx}}} ight), + ,2y, = ,0]

我想要如下:

\[\frac{{{d^2}y}}{{d{x^2}}} - \,3\,\left( {\frac{{dy}}{{dx}}} \right)\, + \,2y\, = \,0\]

我尝试了不同的RegExps和

的结果
var index = str.indexOf("\\")

-1

JavaScript删除控制字符,如\ f,\ r \ n等,TeX中有数千个反斜杠表示法。

1 个答案:

答案 0 :(得分:1)

如何加载str var?

无论如何,有一种解决方法( working here ):

var c=',[]flr';
for(var i=0;i<c.length;i++)
 eval("str=str.replace(/\\"+c.charAt(i)+"/g,'\\\\"+c.charAt(i)+"');");

我们所做的是 c 中的任何字符都评估以下代码(用char替换X):

str=str.replace(/\X/g,'\\X');

无论如何,有一种解决方法( working here ):

var c=',[]flr';
for(var i=0;i<c.length;i++)
 eval("str=str.replace(/\\"+c.charAt(i)+"/g,'\\\\"+c.charAt(i)+"');");

我们所做的是 c 中的任何字符都评估以下代码(用char替换X):

str=str.replace(/\X/g,'\\X');

好的,这是一个奇怪的(也许是危险的)网站提供JSON的错误。如果它没有转动\&#39;对于\',可能它没有变成&#39;到了所以,在&#39;或者&#34; (取决于字符串的引用方式)将在包含该字符串的任何网站上执行(即您的网站)。也许JSON更安全一点。