Javascript:从regExp变量中删除第一个和最后一个\

时间:2013-03-07 06:46:37

标签: javascript regex javascript-events

我正在拼凑一个将鼠标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/

3 个答案:

答案 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, '');