使用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\([^\)]*\)/;