2013-03-07 46 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, '');