Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: re// -> re##

...

The following are all valid predicate expressions:

Code Block
languagejavascript
themeConfluencelanguagejavascript
c == 5
page:var("city") eq "Blackfoot"
"Lindon" neq location:city()
weather:curr_temp() < 90
location:city() + ", WA" eq city
5 * (weather:curr_temp() - 32) / 9 < 0

...

Two special comparison operators are useful with the sort() operator: <=> and cmp. These operators return -1 if the first operand is less than the second, 0, if they're equal, and 1 if the first operand is greater than the second.The <=> operator is used with numbers and cmp is used with strings.

Code Block
languagejavascript
themeConfluence
languagejavascript
x = 5; 
y = 6;
x <=> y // returns -1
x <=> x // returns 0
y <=> x // returns 1
p = "aab";
q = "abb";
a cmp b // returns -1
a cmp a // returns 0
b cmp a // returns 1

...

Like takes a regular expression as its second argument and returns true if it matches the string given as its first argument. Arguments to these operators can be any valid expression.

Code Block
languagejavascript
themeConfluence
languagejavascript
spicy = cheese like re/re#(nacho|pepperjack)/#;


Info

Note that when the like operator is used inside a JSONPath expression, the second operand, representing the regular expression, is given as a string. '/(nacho|pepperjack)/'

...

There is an infix operator for testing membership, ><. The >< operator tests the number or string in the right operand for membership in the map or array given by the left operand. For maps, membership extends to keys only. 

Code Block
languagejavascript
themeConfluencelanguagejavascript
a = [5, 6, 7];
m = {"a" : 1, "b" : 2};
a >< 6     // returns true
a >< 3     // returns false
m >< "a"   // returns true
m >< "foo" // returns false

...

Compound predicate expressions are created using the operators &&, ||, and not to express conjunction, disjunction, and negation, respectively. Conjunction has precedence over disjunction. Parentheses are used to group expressions for precedence.

Code Block
languagejavascript
themeConfluencelanguagejavascript
not a
a && b
a || b
(a || b ) && not c

...