2016-04-21 42 views
0

我想写一些代码来解析搜索字符串。感谢Scraph,我的previous post显示了我的过滤器代码。现在我需要办理以下搜索场景:角提取算子

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

下面的代码检测是否有一些在字符串中

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

我已经测试过它,它可以与0123一样的输入工作。现在我需要提取>=并将其应用于我的搜索。我可以创建一个阵列或运营商,像这样:

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

,然后有一个for循环来找出哪个操作者它然后提取数部分,并执行滤波。然而,这似乎过于冗长,所以我想知道是否有一个更清洁的解决方案,我的问题。

+0

也许愚蠢的评论,但... http://www.w3schools.com/jsref/jsref_eval.asp? –

+0

这就足够了: - https://regex101.com/r/qK8eZ8/1 – rock321987

+0

目前还不清楚你到底需要什么。请用正则表达你想要达到的效果。 –

回答

1

假设上面只提到5的情况下,下面的工作

[><]=?|!= 

Regex Demo

JS演示(未角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