3

我正在使用 MathQuill lib 进行公式输入。我需要限制所有命令 ,但+,和.-*/

我通过以下方式实现了这一点:

var previous = '';
        var answerMathField = MQ.MathField(answerSpan, {
          handlers: {
            edit: function(mathField) {
              var enteredMath = mathField.latex(); // Get entered math in LaTeX format
              let mathSplit = enteredMath.split('\\');

                //restrict commands by triming '\' in 'enteredMath'
                if(mathSplit.length > 1 && enteredMath !== previous){
                  let formatted = mathSplit.reduce((a, b)=>{
                        if(b.indexOf('cdot') !== -1
                                    ||  b.indexOf('frac') !== -1
                                    ||  b === ' '){
                            b = "\\" + b;
                        }
                        return a + b;
                  }, '');

                  //save current math for exiting this loop
                  previous = formatted;

                  answerMathField.latex("");
                  answerMathField.write(formatted);
               }
              }
            }
          }

这就像我想要的那样限制了所有命令,但是answeredMathField.write() 将光标移动到了行尾。有没有办法将光标移动到某个位置?

除此之外,如果有人可以提出更优雅的解决方案来限制 MathQuill 中的命令,那就太好了

任何帮助将不胜感激!

4

0 回答 0