防止在我的javascript中设置正则表达式格式



我肯定有人问过这个问题,但我的谷歌foo让我失望了,我找不到它。当我在这样的等式中划分不止一次时:

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

">/2)+10+(this.active[i].width()/"将在编辑器中出现正则表达式格式(全部为橙色),这让我抓狂。:(

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

有人能给我一个答案吗?

如果你在谷歌上找到它,我会很感激学习你的搜索词。

谢谢。:)

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

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

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

return[(this.base*this.height)/2]+[(this.cerimeter*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.cerimeter*this.slant)*0.5];

我测试了两者,并且两者都能工作,尽管显然解决方案2更高效(代码更少)。

我唯一能想到的需要使用解1的时候是,如果你除以一个很长的数字或素数(除以3会得到比乘以0.33更准确的结果)

不管怎样,我知道你几个月前就发布了这个问题,可能是想出了解决方案,或者继续前进,但我想我无论如何都会发布这个答案,作为未来任何有同样想法的问题的参考。

(此外,这是用JavaScript编写的,但我无法想象在类似的语言中如此简单的东西会有什么不同)。

最新更新