1

javascript 文字列内の変数と数値を一致させようとしています (span タグとの一致を囲みます)。

x1、c2 などの形式の変数に問題があります。私のコードはもともと次のようでした

output = output.replace(/\d+/g,"<span class=\"number\">$&</span>");
output = output.replace(/\)/g,"<span class=\"function\">$&</span>");
output = output.replace(/[a-zA-Z]+\d*/g,returnTextValue); 
//returnTextValue is a function checking whether the string is a variable or plain text
//and highlighting accordingly

これにより、[a-zA-Z]+\d+ の形式の変数が正しく一致しませんでした。これらの変数はすでに数値タグに置き換えられていたためです。

先読みや数値などを使用していくつかのことを試してきましたが[^A-Za-z]?\d+、これを行う良い方法を見つけることができませんでした。

タグを一致させることができることはわかっていますが、よりエレガントなソリューションが必要です。

私は明らかな論理的解決策を欠いていますか、それとも誰かがこの状況で私が知らない正規表現演算子を持っていますか?

4

1 に答える 1

1

最初のルールの \d+ は、孤立した数字に一致するはずですか? 境界 \b\d+\b を追加すると、a2 タイプと一致しなくなります。– Michael Berkowski 12 月 6 日 2:55

于 2012-12-20T15:58:41.247 に答える