Skip to content

Latest commit

 

History

History
24 lines (17 loc) · 764 Bytes

README.md

File metadata and controls

24 lines (17 loc) · 764 Bytes

Uses https://github.com/weaver/ReParse

Compiles and evaluates simple boolean search expressions, e.g.

var parsed = new Expression("John AND Paul AND Ringo AND George");
assert.equal(parsed.test("John"), false);
assert.equal(parsed.test("Paul"), false);
assert.equal(parsed.test("Ringo"), false);
assert.equal(parsed.test("George"), false);
assert.equal(parsed.test("John Paul George Ringo"), true);
assert.equal(parsed.test("Ringo George Paul John"), true);

Supports parens for disambiguation. Supports AND, OR and NOT. Supports quotes for phrases. Case insensitive.

See tests for more examples.

TODO:

  • allow domain names and other punctuation in terms
  • flatten quoted terms
  • more Googley searching (implied AND, negation with -, etc.)