我正在使用一个名为 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);
}
最佳答案
将新数学添加到页面后,您需要告诉 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 配置为使用替代分隔符)。
关于javascript - 如何在 Javascript 中重写 RegExp?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20273319/