私は10x^2-8y^2-7k^4=0
のようなテキスト式を使用しています。 ^
を見つけるには、正規表現を使用して文字列全体を<sup>2</sup>
に置き換えます。結果は以下のようにする必要があります:正規表現を使用して単語を検索し、htmlタグで置き換えます。
私はstr = str.replace(/\^\s/g, "<sup>$1</sup> ")
を試してみましたが、私は期待した結果が届きません。
私の問題を解決するのに役立つアイディアですか?
私は10x^2-8y^2-7k^4=0
のようなテキスト式を使用しています。 ^
を見つけるには、正規表現を使用して文字列全体を<sup>2</sup>
に置き換えます。結果は以下のようにする必要があります:正規表現を使用して単語を検索し、htmlタグで置き換えます。
私はstr = str.replace(/\^\s/g, "<sup>$1</sup> ")
を試してみましたが、私は期待した結果が届きません。
私の問題を解決するのに役立つアイディアですか?
私はあなたが
\^(\d+)
ような何かを探しているそれは、^
と一致すると考え、指数をキャプチャし、
<sup>$1</sup>
See it here at regex101と交換してください。
編集:
this fiddleを確認し、新しい需要を満たすために。これは、replaceで関数を使用してsub
も処理します。
あなたの現在のパターンは、スペース文字(スペース、タブ、改行など)に続くキャレットと一致しますが、キャレットに続いて1文字または複数の文字を賞賛に包んだ文字列TeXにあります。
/\^(?:([\w\d])|\{([\w\d]{2,})\})/g
さて、str = str.replace(/\^(?:([\w\d])|\{([\w\d]{2,})\})/g, "<sup>$1</sup>");
を使用して仕事をする必要があります。
あなたは、特定のタグが付けられた特定の文字で始まる文字をラップすることができ、この表現から、より汎用的な機能を行うことができます。例えば
function wrapPrefixed(string, prefix, tagName) {
return string.replace(new RegExp("\\" + prefix + "(?:([\\w\\d])|\\{([\\w\\d]{2,})\\})"), "<" + tagname + ">$1</" + tagname + ">");
}
、1<sub>2</sub> + 4<sub>3+2</sub>
でwrapPrefixed("1_2 + 4_{3+2}", "_", "sub");
結果を呼び出します。
'.replace(/ \ ^(\ d +)/ g、 '$ 1')'を試してください。特定の方法でこれらの値の周りの空白も管理する必要がありますか? –
いいえ、それは十分です。私はあなたの助けに感謝しました。 – prasanth
私はこのような同じ単一の正規表現でデュアルタグ関数を適用することができます: - ''^"は$ 1'と ''⌄ "を 1 $ 'に置き換えます。どのように私はコードを変更することができます教えてください? – prasanth