1

我们数学论坛上的许多用户使用插入符号输入n 次方,例如。x^(4y)

我们想替换插入符号并使用上标,将数字和变量包装在插入符号之后。所以 x^(4y) 变成 x (4y)

规则:

  1. 如果插入符号后面没有括号,则只为下一个字符上标。
  2. 如果有左括号,则上标直到右括号。

这是一个带有不同插入符号版本的帖子

当然,我们可以使用许多 js 库,但难道不能用 jquery 来完成这个单一的文本转换任务吗?

有没有人已经建立了类似的东西?

谢谢你。

4

1 回答 1

2

我认为这不是 jQuery 的工作。使用纯 javascript 遍历文本,虽然很冗长,但可能是最好的方法:

function superify(input) {
    if(!input) return input;

    var output = [];
    var buffer;
    for(var i=0;i<input.length;i++) {
        var current = input[i];

        if(buffer) {
            if(current === ')') {
                buffer.push('</sup>');
                output.push.apply(output, buffer);
                buffer = null;
            } else {
                buffer.push(current);
            }
        }
        else if(current === '^') {
            var next = input[++i]; 
            if(next === '(') {
                buffer = ['<sup>'];
            } else {
                output.push.apply(output, ['<sup>', next, '</sup>']);
            }   
        } else {
            output.push(current);
        }
    }

    return output.join('');
}

(代码没有经过很好的测试。通过几个例子运行它,它似乎有效)

于 2013-02-11T13:52:31.343 回答