角度提取运算符

Angular Extracting Operators

本文关键字:运算符 提取      更新时间:2023-09-26

我想写一些代码来解析搜索字符串。我之前的帖子显示了我的过滤器代码感谢Scraph。现在我需要处理以下搜索场景:

  1. age>10
  2. age>=10
  3. items!=3

以下代码检测字符串中是否有数字:

if(queryValue.match(/'d+/g)) {
   $log.debug("Regex detected numbers");
}

我已经测试过了,它可以与>=10这样的输入一起工作。现在我需要提取>=并将其应用于搜索。我可以创建一个数组或类似的运算符:

var operators = ['>', '>=', '<', '<=', "!="]

然后有一个for循环来确定它是哪个运算符,然后提取数字部分并进行过滤。然而,这似乎过于冗长,所以我想知道是否有一个更清洁的解决方案来解决我的问题。

假设只有上面提到的5种情况,以下情况将适用于

[><]=?|!=

Regex演示

JS Demo(不是Angular JS)

var re = /([><]=?|!=)/; 
var str = ['>=', '<=', '=', '!=', '<', '>', '!', 'abc>=234'];
str.forEach(function(number) {
  if (number.match(re))
      document.writeln(number.match(re)[1] + '<br>');
});

Angular JS Demo