2013-03-07 74 views
0

我在一起編寫一個將鼠標X,Y座標映射到軸網格的腳本。結果變量將被傳遞給CSS轉換屬性。我得到了我需要的所有數字,但是我被卡在最後一部分,即在結果周圍刪除\,該結果已被轉換爲正則表達式以允許負整數。Javascript:首先和最後從regExp變量

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

無論我怎麼做,最後一步(剝掉斜線)都會拋出錯誤。我在一個函數試圖封裝.replace,並使用return,但我仍然得到同樣的錯誤:

TypeError: 'undefined' is not a function (evaluating 'resultX.replace(///g,'')')

我卡住了,一直沒能在任何地方找到解決方案。也許問題是我的變量不是一個真正的字符串?或者,也許有人有一個更好的方法來允許負整數的建議。

JS提琴: http://jsfiddle.net/wAKnY/

+1

你爲什麼要首先將正則表達式*傳遞給正則表達式*?這裏不需要正則表達式。我覺得你的大腦很累。 – JayC 2013-03-07 06:51:22

回答

1

像JayC在評論中提到的,似乎沒有成爲一個理由轉換爲放在首位一個RegExp,所以我只想建議取下封閉RegExp()

然而,如果你需要,由於某種原因,這裏是看不出來,然後你可以調用它的toString()使replace功能,以正確的行爲:

resultX = resultX.toString().replace(/\//g,''); 
+0

謝謝大家!這種簡單的解決方案。 – printr 2013-03-07 07:02:22

0

正如JayC說,你並不需要擺在首位一個正則表達式。

var resultX = (Math.round(mousePos.x/6.6)-60).toString; 
0

這工作:

resultX = resultX.toString().replace(/\//g, ''); 
resultY = resultY.toString().replace(/\//g, '');