Я хочу написать код для анализа строки поиска. Моя предыдущая статья показывает мой код фильтра благодаря Scraph. Теперь мне нужно обработать следующие сценарии поиска:
age>10
age>=10
items!=3
Следующий код определяет, есть ли число в строке:
if(queryValue.match(/\d+/g)) {
$log.debug("Regex detected numbers");
}
Я тестировал это, и он работает с входом вроде >=10
. Теперь мне нужно извлечь >=
и применить это к моему поиску. Я могу создать массив или операторы:
var operators = ['>', '>=', '<', '<=', "!="]
И затем, чтобы цикл for, чтобы выяснить, какой оператор он, затем извлечь часть номера и выполнить фильтрацию. Однако это кажется слишком многословным, поэтому мне интересно, есть ли более чистое решение моей проблемы.
Предполагая, что только 5 упомянутых выше случаев, будут работать следующие
[><]=?|!=
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>');
});