使用Javascript中的正则expression式来匹配Excel中SUM函数的格式

我在Javascript中格式化正则expression式时遇到问题,以testing文本框中的值是否与您在Excel中看到的格式类似。

到目前为止,我有这样的:

var equation = document.getElementById('functionBox').value; var patt = new RegExp("=SUM\(.*\)"); if (patt.test(equation)) { //Continue operations } 

根据我的理解,这应该等同于只允许“= SUM()”的格式,但是如果在返回false之前删除其中的一个或两个括号,甚至删除SUM中的M,则它的传递为true。

有什么我在这里失踪,或者我应该看看我的代码中的其他地方find问题。

此外,我现在知道,这不会考虑单元格I的格式,而是在括号内。 恐怕我不知道要完成什么,而大多数正则expression式我都试着用谷歌做例子,要么是非常具体的,要么只是列举修饰符而不给出任何示例去跟随它们。

由于您使用的是string,因此您必须双击转义括号:

 var patt = new RegExp("=SUM\\(.*\\)"); 

为了易读性(还有更多的原因),使用文字正则expression式:

  var patt = /=SUM\(.*\)/; 

PS你可以通过使用一个否定组来优化这个正则expression式:

 var patt = /=SUM\([^\)]*\)/;