在我的javascript中阻止正则表达式格式化

时间:2012-12-04 22:50:54

标签: aptana

我确定其他人已经问过这个,但我的Google foo让我失望了,我找不到它。 当我在这样的等式中划分不止一次时:

this.active[i].pos(last.pos()+(last.width()/2)+10+(this.active[i].width()/2));

/ 2)+10+(this.active [i] .width()/ ”将在编辑器中提供正则表达式格式化(全橙色),这让我疯狂。 :(

有没有办法可以更改我的设置以防止这种情况发生?我根本不使用正则表达式,因此在编辑器中完全禁用它的格式是可以接受的。

任何人都可以提供或指出我的答案吗?

如果您在Google上找到它,我将非常感谢您学习搜索字词。

谢谢。 :)

1 个答案:

答案 0 :(得分:3)

当我在堆栈溢出时遇到这个问题时,我一直在网上搜索大约45分钟试图找到这个问题的解决方案。我几乎开始给它一个赏金,但我决定看看自己是否能解决这个问题。

我想出了两种可能的解决方案,这两种解决方案都比我简单得多。

解决方案1:将公式分为两个部分,这两个部分可以存储在变量中,并在需要时添加到一起。例如,我碰巧正在为表面积计算编写一个公式,它形成了一个正则表达式并返回了错误的答案:

  
    

return [(this.base * this.height)/ 2] + [(this.perimeter * this.slant)/ 2];

  

我将公式分割为+并将它们存储在变量中:

var a = (this.base * this.height)/2;
    var b = (this.perimeter * this.slant)/2;    
    return  a + b   

此解决方案工作得很好。但后来我开始认为必须有一个更简单的解决方案,我过度看待导致我:

解决方案2:除以2与乘以0.5(duh!)相同。在我的情况下 - 几乎在任何情况下 - 除以2并乘以0.5将得到相同的答案。我的代码看起来像这样:

  
    

return [(this.base * this.height)* 0.5] + [(this.perimeter * this.slant)* 0.5];

  

我测试了两者,并且两者都有效,但显然解决方案2更有效(代码更少)。

我能想象的唯一需要使用解决方案1的时间是你用一个很长的数字或素数除以(除以3会得到比乘以0.33更精确的结果)。

无论如何,我知道你在几个月前发布了这个问题,可能要么想出一个解决方案,要么继续前进,但我想我也会发布这个答案作为未来相同想法的参考。

(另外,这是在JavaScript中,但我无法想象这种简单的东西在类似的语言中是不同的。)