0

マウスのX、Y座標を軸グリッドにマップするスクリプトを組み合わせています。結果の変数は、CSS変換プロパティに渡されます。必要なすべての数値を取得していますが、最後の部分で立ち往生しています。これは、負の整数を許可するために正規表現に変換された結果の周りの\を削除することです。

var resultX = RegExp(Math.round(mousePos.x/6.6) -60);
resultX = resultX.replace(/\//g,'');

最終段階(スラッシュを削除)は、どのように実行してもエラーをスローします。.replace関数にカプセル化してを使用しようとしましreturnたが、同じエラーが発生し続けます。

TypeError:'undefined'は関数ではありません('resultX.replace(/// g、'')'を評価しています)

私は立ち往生していて、どこにも解決策を見つけることができませんでした。おそらく問題は、私の変数が真の文字列ではないということですか?あるいは、誰かが負の整数を許可するためのより良い方法を提案しているかもしれません。

JSフィドル: http: //jsfiddle.net/wAKnY/

4

3 に答える 3

1

コメントで述べたJayCのように、そもそも正規表現に変換する理由はないように思われるので、囲んでいるを削除することをお勧めしRegExp()ます。

ただし、ここでは明らかではない何らかの理由でそれが必要な場合は、それを呼び出しtoString()て、replace関数が正しく動作できるようにすることができます。

resultX = resultX.toString().replace(/\//g,'');
于 2013-03-07T06:56:16.833 に答える
0

JayCが言ったように、そもそも正規表現は必要ありません。

var resultX = (Math.round(mousePos.x/6.6)-60).toString;
于 2013-03-07T06:55:37.970 に答える
0

これは機能します:

resultX = resultX.toString().replace(/\//g, '');
resultY = resultY.toString().replace(/\//g, '');
于 2013-03-07T06:57:55.523 に答える