回答:
たとえば、文字列replace
とtoLowerCase
メソッドを使用するだけです。
var str = "Sonic Free Games";
str = str.replace(/\s+/g, '-').toLowerCase();
console.log(str); // "sonic-free-games"
のg
フラグに注意してください。これにより、文字列内でグローバルにRegExp
置換されます。使用しない場合は、最初に出現したものだけが置換され、RegExp
1つ以上の空白文字と一致します。
replace(/\s+/g, ..
及びません replace('/\s+/f', ..
(アポストロフィなし)
String.prototype.trim
:方法str.trim().replace(/\s+/g, '-').toLowerCase()
上記の答えは少し混乱していると考えることができます。文字列メソッドは元のオブジェクトを変更しません。新しいオブジェクトを返します。それは違いない:
var str = "Sonic Free Games";
str = str.replace(/\s+/g, '-').toLowerCase(); //new object assigned to var str
split
and も使用できますjoin
。
"Sonic Free Games".split(" ").join("-").toLowerCase(); //sonic-free-games
CMSの答え@だけで結構ですが、私はあなたがこのパッケージを使用できることに注意してくださいにしたい:https://github.com/sindresorhus/slugify、あなたとカバー多くのエッジケース(すなわち、ドイツ語のウムラウトのためにそれをしない、ベトナム語、アラビア語、ロシア語、ルーマニア語、トルコ語など)。
str.replace(/\W+/g, '-').toLowerCase();