如何在Javascript中覆盖RegExp?

时间:2013-11-28 19:10:07

标签: javascript latex

我正在使用一个名为MathJax的Javascript库,它允许您在HTML中使用LaTex和其他类似的数学标记语言。我试图在Javascript中使用它,但正则表达式正在阻碍它。这是我的代码:

function sendTex()
{
    var latexStuff = $("#texField").val();
    var latexString = "When $a \ne 0$, there are two solutions to \*(ax^2 + bx + c = 0\*)       and they are
    $$x = {-b \pm \qrt{b^2-4ac} \over 2a}.$$";
    $("#texVersion").append(latexString);
}

1 个答案:

答案 0 :(得分:1)

将新数学添加到页面后,您需要告诉MathJax处理该新数学。有关详细信息,请参阅MathJax documentation。主要想法是使用

MathJax.Hub.Queue(["Typeset",MathJax.Hub]);

当您希望MathJax在页面上处理新数学时。在您的情况下,您可以尝试

function sendTex()
{
  var latexStuff = $("#texField").val();
  var latexString = "When $a \\ne 0$, there are two solutions to \\(ax^2 + bx + c = 0\\)" +
    " and they are $$x = {-b \\pm \\sqrt{b^2-4ac} \\over 2a}.$$";
  $("#texVersion").append(latexString);
  MathJax.Hub.Queue(["Typeset",MathJax.Hub,"texVersion"]);
}

看看这对你有用吗?请注意,您需要加倍反斜杠,因为在JavaScript字符串中,反斜杠是一个特殊字符,因此要获得文字反斜杠,您需要使用其中的两个。您还有\qrt而非\sqrt\*(...\*)而不是通常的\(...\)(但您可能已将MathJax配置为使用替代分隔符)。