我正在拼凑一个将鼠标X,Y坐标映射到轴网格的脚本。然后,生成的变量将传递给CSS转换属性。我得到了我需要的所有数字,但是我停留在最后一部分,即删除结果周围的\,它已被转换为正则表达式,以便允许负整数。
var resultX = RegExp(Math.round(mousePos.x/6.6) -60);
resultX = resultX.replace(/\//g,'');
无论我怎么做,最后阶段(剥离斜线)都会引发错误。我已尝试将.replace
封装在函数中,并使用return
,但我仍然遇到同样的错误:
TypeError:'undefined'不是一个函数(评估 'resultX.replace(///克,' ')')
我被困住了,无法在任何地方找到解决方案。也许问题是我的变量不是真正的字符串?或者也许有人建议更好地允许负整数。
JS小提琴: http://jsfiddle.net/wAKnY/
答案 0 :(得分:1)
与评论中提到的JayC一样,似乎没有理由首先转换为RegExp,所以我建议删除封闭的RegExp()
。
但是,如果由于某些原因在此处不明显,您可以在其上调用toString()
以使replace
功能正常运行:
resultX = resultX.toString().replace(/\//g,'');
答案 1 :(得分:0)
正如JayC所说,你首先不需要正则表达式。
var resultX = (Math.round(mousePos.x/6.6)-60).toString;
答案 2 :(得分:0)
这有效:
resultX = resultX.toString().replace(/\//g, '');
resultY = resultY.toString().replace(/\//g, '');