次のような文字列があります:
var str = "I'm a very^ we!rd* Str!ng.";
私がやりたいのは、上記の文字列からすべての特殊文字を削除し、スペースと、入力されている場合はアンダースコアを - 文字に置き換えることです。
上記の文字列は、「変換」後は次のようになります。
var str = 'im-a-very-werd-strng';
ベストアンサー1
replace(/[^a-z0-9\s]/gi, '')
文字列を英数字のみにフィルタリングし、replace(/[_\s]/g, '-')
アンダースコアとスペースをハイフンに置き換えます。
str.replace(/[^a-z0-9\s]/gi, '').replace(/[_\s]/g, '-')
正規表現のソース:英数字のみを許可するJavascriptの正規表現
デモはこちらです:http://jsfiddle.net/vNfrk/