我想使用JS来转换嵌套指数LaTeX表达式,例如
2^{3^{4^5}}
PHP 的 pow()
语法
pow(2,pow(3,pow(4,5)))
我知道JS不支持递归正则表达式。该表达式是方程的一部分,因此我希望该解决方案适用于类似的内容
\frac{3}{9}+\frac{2^{\sqrt{4^2}}}{6}
应该输出
\frac{3}{9}+\frac{pow(2,\sqrt{pow(4,2)})}{6}
就像@AbcAeffchen 的解决方案一样。
我不需要非指数部分的转换。
注意:该解决方案不得要求求助于 PHP 5.6,该版本引入了 **
运算符
最佳答案
一个丑陋的黑客,
> foo
'2,(3^(4^5))'
> var foo = "2^(3^(4^5))".replace(/\^/g, ",");
undefined
> foo
'2,(3,(4,5))'
> var bar = foo.replace(/(\d,)(?=[^\d])/g, "$1pow");
undefined
> var foobar = bar.replace(/^(.*)$/, "pow($1)")
undefined
> foobar
'pow(2,pow(3,pow(4,5)))'
关于javascript - 使用 JavaScript 将指数 LaTeX 语法转换为 PHP 的 pow(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25135105/