Операторы углового извлечения

0

Я хочу написать код для анализа строки поиска. Моя предыдущая статья показывает мой код фильтра благодаря Scraph. Теперь мне нужно обработать следующие сценарии поиска:

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

Следующий код определяет, есть ли число в строке:

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

Я тестировал это, и он работает с входом вроде >=10. Теперь мне нужно извлечь >= и применить это к моему поиску. Я могу создать массив или операторы:

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

И затем, чтобы цикл for, чтобы выяснить, какой оператор он, затем извлечь часть номера и выполнить фильтрацию. Однако это кажется слишком многословным, поэтому мне интересно, есть ли более чистое решение моей проблемы.

  • 0
    Может быть, глупый комментарий, но ... w3schools.com/jsref/jsref_eval.asp ?
  • 0
    этого будет достаточно: - regex101.com/r/qK8eZ8/1
Показать ещё 1 комментарий
Теги:
search

1 ответ

1
Лучший ответ

Предполагая, что только 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>');
});

Угловая демонстрация JS

Ещё вопросы

Сообщество Overcoder
Наверх
Меню