You can use a negative lookahead wich checks if the input doesnt contain any $ or +, then selects the appropriate characters:
/^(?!.*?[$+])[a-z A-Z0-9-\/().,@&#*!%:-]{0,100}/
Live DEMO
NODE EXPLANATION
--------------------------------------------------------------------------------
^ the beginning of the string
--------------------------------------------------------------------------------
(?! look ahead to see if there is not:
--------------------------------------------------------------------------------
.*? any character except \n (0 or more times
(matching the least amount possible))
--------------------------------------------------------------------------------
[$+] any character of: '$', '+'
--------------------------------------------------------------------------------
) end of look-ahead
--------------------------------------------------------------------------------
[a-z A-Z0-9- any character of: 'a' to 'z', ' ', 'A' to
\/().,@&#*!%:- 'Z', '0' to '9', '-', '\/', '(', ')', '.',
]{0,100} ',', '@', '&', '#', '*', '!', '%', ':', '-
' (between 0 and 100 times (matching the
most amount possible))