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,所以我只建议删除封闭的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 回答