Ciao a tutti.

Questo codice javascript controlla che in un cambio password vengano rispettati i requisiti di una regular expression:

Lunghezza da un min di 8 ad un max di 12 caratteri;
Almeno un carattere alfanumerico;
Almeno un carattere numerico;
Almeno un carattere speciale tra i seguenti: !ç°§|^£!\"@$%&/()=?'`*+~#-_.,;:{[]}

codice:
if   (!theform.new_code1.value.match(/^[!-~£§°ç]{8,12}$/) ||
      !theform.new_code1.value.match(/[0-9]/) ||
      !theform.new_code1.value.match(/[a-z]/i) ||
      !theform.new_code1.value.match(/[!-\/:-@\[-`\{-~£§°ç]/))
           
    {
      alert("KO!");
      theform.new_code1.focus();
      theform.new_code1.select();
 
      return(false);
    }
Il problema è che vorrei evitare che si inserisca più di un carattere speciale, ad esempio una password di questo tipo:

"90CHIara

Non è accettabile perchè contiene due apici, cioè due caratteri speciali.

E poi come devo modificare questa R.E. per evitare che possano essere inseriti i seguenti caratteri speciali: apice ' e doppio apice " ?

Sapete aiutarmi?