字符串中第一个SUM/MIN/MAX/AVG的JavaScript正则表达式
我想做的是: 总额(销售额)+总额(收入) 或最小值(销售额)+总和(收入) 我想要的是第一次计算。因此,对于1),将给出结果“SUM”,对于2),将给出结果“MIN” 我已经尝试过if语句,但这样做要么不可能,要么非常困难。有谁能给我一个可能的正则表达式方法来做这件事 我在if语句中尝试的是:字符串中第一个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
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é。我的错…谢谢,非常感谢。