a me viene in mente di indicare nella regexp tutti i caratteri TRANNE quelli che non viuoi ci siano:
nota: \w significa un 'word character' cioè : [A-Za-z0-9_]
codice:
var re = /^[\w\\|!"£$\/()=\?'^\[\]\+\-\*\@\#\§\.\,\;\:]{8,12}$/;
var stringabuona = "asD1!$opi";
var stringanonbuona="asD1!$<pi";
alert("buona : "+re.test(stringabuona));
alert("nobuona : "+re.test(stringanonbuona));
HTH
Zappa