node package manager
Share your code. npm Orgs help your team discover, share, and reuse code. Create a free org »



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.


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