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 に答える