文字列から変数名に使える部分だけ取り出したくて 半角記号を消そうと思ったのですが 意外と簡単な方法がなさそうです

とりあえずな方法ですがこれでいい感じになりました

var result = text.replace(/\W/g, function(m){return m.match(/[!-~]|\s/) ? "" : m})

\W だと 全角文字もマッチしてしまうので マッチしたものの中で [!-~]|\s にもマッチすれば空文字にします