Regex pour obtenir tous les champs alphanumériques, sauf pour les virgules, les tirets et les citations simples

J'essaie de supprimer tous les caractères non alphanumériques, sauf pour les virgules, les tirets et les citations simples. Je sais comment supprimer tous les mots non d'une chaîne, c.-à-d.

myString.replace(/\W/g,''); 

Mais comment je le fais à l'exception de - et ' ? j'ai essayé

 myString.replace(/\W+[^,]/g,''); 

Parce que je sais comment nier l'utilisation de l'opérateur ^ , tout en ayant du mal à combiner le regex.

Toute aide est appréciée. Merci.

\w est l'inverse de \W , donc vous pouvez simplement utiliser /[^\w,'-]/

EDIT: dans le cas où le trait de soulignement n'est pas souhaité: /[^\w,'-]|_/

La classe de caractères suivante correspond à un seul caractère qui appartient à la classe de lettres, de chiffres, de virgule, de tiret et de citation unique.

 [-,'A-Za-z0-9] 

Ce qui suit correspond à un personnage qui n'est pas l'un de ces:

 [^-,'A-Za-z0-9] 

Alors

 var stripped = myString.replace(/[^-,'A-Za-z0-9]+/g, '');