I have a text field, which will accept only the following characters:
Allowed characters: [a-z 0-9 + # - .]
This is the same filter SO>
/[^A-Za-z0-9+#-\.]/
This negates the match of any one of those characters. To make it match more than one character, you have to use a + in there:
/[^A-Za-z0-9+#-\.]+/
^
And now to match the whole string, you need to add anchors:
/^[^A-Za-z0-9+#-\.]+$/
^ ^
EDIT: Okay, it seems that the - here is also creating a range from character # to .. In this case, you can either escape it, or put it at the end:
/^[^A-Za-z0-9+#\-\.]+$/
/^[^A-Za-z0-9+#\.-]+$/