[quote=thiagof]Fala grande digaoneves!!!
[quote][…]
assim: \\
Eu sei que é feio, porém não me recordo se existe algo que diga que uma lista é crua em JavaScript, portanto é o jeito
var invalid = new RegExp("[<>&’;#@\\]");
[…][/quote]
Apenas uma observaçãozinha para nosso colega Edvaldo_Melo
Não precisa ter 4 barras invertidas \\ dentro da lista na regex, apenas duas…
dentro da lista, 2 barras a mais se tornam redundante porque a lista compara caractere a caractere e \ é um caractere, então, pode ter quantos \ forem na string a ser analisada que a lista vai pegar todas elas 
apenas 2 barras (para representar uma “” literal) dentro da lista dão conta do recado 
roda esse exemplo que peguei da w3schools no console do firebug para tirar a prova real
var str="Hello \\\\ world!";
var patt=/[<>&';#@\\]/g;
var result=patt.test(str);
console.log(result); // imprime "true" no console porque encontrou as 2 barras literais na string da variavel "str"
console.log(str);
[/quote]
Você está correto thiagof, mas o que não foi mencionado é que sua string é crua.
Ou seja, ela não será interpretada como uma String comum, tudo o que está nela são caracteres e nenhum deles tem uma função especial.var string = "Minha String";
var stringCrua = /Minha String Crua/;
Quando a String é entre barras, e não entre aspas, aí sim um escape simples funcionaria, agora com aspas não.
Quando não utilizamos Strings cruas, temos que prever o processamento da String antes do processamento da regex.
Eu nem tinha me atentado à strings cruas, pois como não existe isso em Java, as vezes passa batido hehehe.
Obs: O exemplo com \\ eu peguei do livro do Aurélio, rs.