1

テキストボックスの値が Excel で表示されるものと同様の形式に一致するかどうかをテストするために、Javascript で正規表現式をフォーマットするのに問題があります。

これまでのところ、私はこれを持っています:

var equation = document.getElementById('functionBox').value;
var patt = new RegExp("=SUM\(.*\)");
if (patt.test(equation))
{
   //Continue operations
}

私の理解では、これは「=SUM()」の書式設定のみを許可することと同等である必要がありますが、false を返す前にいずれかまたは両方の括弧を削除し、SUM の M を削除しても true として渡されます。

ここに欠けているものはありますか、それともコードの他の場所を調べて問題を見つける必要がありますか?

また、現時点では、セル I の書式設定は考慮されませんが、括弧の間は考慮されません。残念ながら、私は達成する考えがありません。私が例を求めてGoogleにしようとするほとんどの正規表現は、非常に具体的であるか、それらに沿った例を提供せずに修飾子をリストアップするだけです.

4

1 に答える 1

4

文字列を使用しているため、括弧を二重にエスケープする必要があります。

var patt = new RegExp("=SUM\\(.*\\)");

読みやすさのために (およびその他の多くの理由で)、リテラル正規表現を使用します。

 var patt = /=SUM\(.*\)/;

PS否定されたグループを使用して、この正規表現を最適化できます。

var patt = /=SUM\([^\)]*\)/;
于 2013-01-30T20:30:37.247 に答える