All characters in a string must match regex
You need *
or +
quantifier after your character class and anchors:
/^[xX<>=|0-9&()\s.]*$/.test(expression)
^ ^^
Now, it will match
-
^
- start of string -
[xX<>=|0-9&\s().]*
- zero or more (if you use+
, one or more) of the chars defined in the char class -
$
- end of string.
Short demo:
console.log(/^[xX<>=|0-9&\s().]*$/.test("a.1"));
console.log(/^[xX<>=|0-9&\s().]*$/.test("(x>1) && (x<2)"));
Note I added \s
to match whitespaces, too.