Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
字符串中第一个SUM/MIN/MAX/AVG的JavaScript正则表达式_Javascript_Jquery_Regex - Fatal编程技术网

字符串中第一个SUM/MIN/MAX/AVG的JavaScript正则表达式

字符串中第一个SUM/MIN/MAX/AVG的JavaScript正则表达式,javascript,jquery,regex,Javascript,Jquery,Regex,我想做的是: 总额(销售额)+总额(收入) 或最小值(销售额)+总和(收入) 我想要的是第一次计算。因此,对于1),将给出结果“SUM”,对于2),将给出结果“MIN” 我已经尝试过if语句,但这样做要么不可能,要么非常困难。有谁能给我一个可能的正则表达式方法来做这件事 我在if语句中尝试的是: function hasFormula(formulaToLower) { // formulaToLower could equal "SUM(Sales) + SUM(Revenue)" e

我想做的是:

总额(销售额)+总额(收入)

或最小值(销售额)+总和(收入)

我想要的是第一次计算。因此,对于1),将给出结果“SUM”,对于2),将给出结果“MIN”

我已经尝试过if语句,但这样做要么不可能,要么非常困难。有谁能给我一个可能的正则表达式方法来做这件事

我在if语句中尝试的是:

function hasFormula(formulaToLower) {
    // formulaToLower could equal "SUM(Sales) + SUM(Revenue)" etc
    // could also equal "SUM(Sales) + MIN(Revenue)" - this will return MIN, but it return SUM.

    if (formulaToLower.indexOf('sum') !== -1) {
         return "SUM";
    }

    if (formulaToLower.indexOf('min') !== -1) {
         return "MIN";
    }
}

显然,这将首先显示MIN,即使它是第二个,依此类推……

您可以使用一个regexp,它允许您想要的所有组合。如果使用全局修饰符,匹配项将按正确的顺序返回,如果不使用,则仅返回第一个匹配项:

var matcher = /SUM|MIN|MAX|AVG/;

var str1 = 'SUM(Sales) + SUM(Revenue)';
var str2 = 'MIN(Sales) + SUM(Revenue)';

console.log(str1.match(matcher)[0]) // SUM
console.log(str2.match(matcher)[0]) // MIN

*
[0]
部分获取由返回的结果数组中的第一个元素。

4K,我需要解释一下。。。你能添加一些实际的输入和预期的输出吗?最重要的是,你用正则表达式做过什么尝试?你能举一个输入和输出的例子吗?很难说你想做什么。@ChrisDixon基本上你只是满足了你的需求,想让我们为你写一个正则表达式。如果你想要一个正则表达式,那么至少表现出一些主动性,展示你使用正则表达式的尝试。这根本不是我所做的,我已经提供了我所尝试做的,我认为可能是正确的事情,我已经征求了建议。就像你说的,我有4K积分。。。“我已经帮助了很多其他人,稍微向后一点就好了。”克里斯迪克森在后面一点的部分,touché。我的错…谢谢,非常感谢。